Luk*_*uke 3 transition uiviewcontroller uiview uiinterfaceorientation ios9
我还没有看到这个问题的明确答案,围绕 iOS 8 的变化有很多噪音,但我想在 iOS 9 上解决这个问题:
\n\n界面方向更改结束后获取回调的正确方法是什么?
\n\n从 iOS 9 开始,didRotateFromInterfaceOrientation:它已被弃用,官方文档告诉我们改用它viewWillTransitionToSize:withTransitionCoordinator。这为我们(通过transitionCoordinator)提供了一种沿着过渡进行动画处理的方法和一个完成块,但没有对过渡的真实 \xe2\x80\x98end\xe2\x80\x99 进行直接回调。
另一种方法是transitionCoordinator,notifyWhenInteractionEndsUsingBlock:但这似乎报告了过渡的交互部分的结束,而不是整个事情。
那么, \xe2\x80\x9cofficial\xe2\x80\x9d 的方法是执行此操作animateAlongsideTransition:completion,并简单地忽略动画选项吗?
我意识到我们仍然可以使用旧的didRotateFromInterfaceOrientation:,但它\xe2\x80\x99s 总是更好地尽可能现代化。
小智 5
是的,您可以忽略动画选项,只需使用“nil”即可。
WWDC 2014“iOS 8 中的视图控制器改进”示例:
- (void) viewWillTransitionToSize:(CGSize)s withTransitionCoordinator:(UIVCTC)t
{
orientation = [self orientationFromTransform: [t targetTransform]];
oldOrientation = [[UIApplication sharedApplication] statusBarOrientation];
[self myWillRotateToInterfaceOrientation:orientation duration:duration];
[t animateAlongsideTransition:^(id <UIVCTCContext>) {
[self myWillAnimateRotationToInterfaceOrientation:orientation duration:duration];
}
completion: ^(id <UIVCTCContext>) {
[self myDidAnimateFromInterfaceOrientation:oldOrientation];
}];
}
Run Code Online (Sandbox Code Playgroud)
与 iOS 9 配合良好。
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |