我正在创建一个iOS应用程序,在一个方法中,我有一个for循环,可以执行一系列持续约2秒的动画。
我的问题是,如果用户在动画仍处于进行状态时旋转设备,则会影响新方向的格式化(一切都按照旋转发生时的方式运行 之后动画完成)。
所以我想知道是否有办法延迟轮换
答案 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;
}
}];
}