Dea*_*ids 4 rotation uiviewcontroller ios
尝试游戏新的旋转方法,我需要知道设备是否正在旋转,以便推迟和取消旋转时不需要的动作.
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
_rotating = YES;
[coordinator notifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext> context) {
_rotating = NO;
}];
}
Run Code Online (Sandbox Code Playgroud)
看起来很直接,应该根据我对文档的解释工作,但显然没有.似乎_rotating被设置为YES并且永远不会被设置回NO.因此,似乎永远不会调用我的完成块.
我有同样的问题.我潜入了文档.在以下情况下notifyWhenInteractionEndsUsingBlock调用您指定的块:
当转换从交互式更改为非交互式时,将调用处理程序.
但是,轮换不是交互式过渡.一旦启动,您就无法与之互动.这就是永远不会调用处理程序的原因.
我最终使用animateAlongsideTransition:completion:方法.它就像一个魅力.
- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
_rotating = YES;
[super viewWillTransitionToSize:size
withTransitionCoordinator:coordinator];
[coordinator animateAlongsideTransition:nil
completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
_rotating = NO;
}];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1285 次 |
| 最近记录: |