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

解决方案 »

  1.   

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

  2.   


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

  3.   


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

  4.   


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

  5.   

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

  6.   

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

  7.   

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