iOS阻止旋转,直到动画完成

时间:2014-01-29 21:31:46

标签: ios objective-c animation locking screen-rotation

我正在创建一个iOS应用程序,在一个方法中,我有一个for循环,可以执行一系列持续约2秒的动画。

我的问题是,如果用户在动画仍处于进行状态时旋转设备,则会影响新方向的格式化(一切都按照旋转发生时的方式运行 之后动画完成)。

所以我想知道是否有办法延迟轮换

1 个答案:

答案 0 :(得分:0)

您可以根据动画是否完整更新BOOL实例变量。然后覆盖shouldAutorotate方法并返回BOOL。可能看起来像这样:

@implementation YourViewController {
    BOOL _shouldAutoRotate;
}

-(BOOL)shouldAutorotate {
    [super shouldAutorotate];
    return _shouldAutoRotate;
}

-(void)yourAnimationMethod {

    _shouldAutoRotate = NO;

    [UIView animateWithDuration:2.0f animations:^{
        //your animations
    } completion:^(BOOL finished) {
        if(finished) {
            _shouldAutoRotate = YES;
        }
    }];
}