Code Bye

[开发问题] 求解ipad开发问题(急):动画效果没有做完用户就旋转屏幕出现bug

 

各位,求解ipad开发中的一个问题,问题是这样的:我的项目支持横竖屏,进入应用程序时做了一个动画效果,因为同样的动画,横竖屏坐标尺寸是不同的,当ipad处于横屏动画状态时,用户旋转屏幕处于竖屏状态,这个时候仍然做的是横屏动画效果,这是个很大的bug,不知道有没有遇到过这种情况的,求指点一下。我的个人想法是,能不能在动画期间,给屏幕控制器发送一个锁定屏幕的消息,等动画做完之后再发一个支持旋转的消息,但问题是,就我知道的,程序在加载中调用shouldAutorotateToInterfaceOrientation函数返回YES时就已经确定了是否支持横竖屏幕,各方求解,先行谢过!


5分
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

5分
引用 1 楼 zhh107 的回复:

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

这招可行吧,测试测试

引用 1 楼 zhh107 的回复:

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

但问题是,我如果一开始就设置屏幕不能选择,那程序默认只做横屏动画或只做竖屏动画,就不知道做哪个动画了,我需要根据ipad方位确定做哪个动画,然后再锁定屏幕,动画做完之后再设置回来。求深解!

引用 1 楼 zhh107 的回复:

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

但问题是,我如果一开始就设置屏幕不能选择,那程序默认只做横屏动画或只做竖屏动画,就不知道做哪个动画了,我需要根据ipad方位确定做哪个动画,然后再锁定屏幕,动画做完之后再设置回来。求深解!

引用 1 楼 zhh107 的回复:

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

但问题是,我如果一开始就设置屏幕不能选择,那程序默认只做横屏动画或只做竖屏动画,就不知道做哪个动画了,我需要根据ipad方位确定做哪个动画,然后再锁定屏幕,动画做完之后再设置回来。求深解!


5分

你的动画用线程吧 哪里需要旋转和不旋转自己用刚刚的方式设定


5分
播放动画前先获取UIInterfaceOrientation orientation= [[UIApplication sharedApplication].statusBarOrientation; 根据orientation的方向来判断是要播横屏还是竖屏;然后播放的时候锁定旋转~播放完毕解锁旋转~

20分
用个变量不就搞定了嘛? 
在shouldAutorotateToInterfaceOrientation中
if (state == welcome) {
    if(竖直) return YES;
}

else if (state == normal) {
    return YES;
}

他的意思是做动画的时候将屏幕旋转锁定,做完之后再可以旋转
引用 3 楼 kubeat 的回复:

引用 1 楼 zhh107 的回复:

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
一开始设置屏幕不能选择。动画完成之后用上面的方式设置回来可以旋转

但问题是,我如果一开始就设置屏幕不能选择,那程序默认只做横……

做个动画事件,根据具体的orientation来处理动画,动画事件里面一开始对动画初始化,包括frame,timer等,这样保证用户的实时要求

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明[开发问题] 求解ipad开发问题(急):动画效果没有做完用户就旋转屏幕出现bug