iOS9界面轮换ENDED时回调?
Callback when interface rotation ENDED in iOS 9?
我还没有看到这个问题的明确答案,围绕 iOS 8 的变化有很多噪音,但我想在 iOS 9 中解决它:
界面方向改变ENDS后回调的正确方式是什么?
从 iOS 9 开始,didRotateFromInterfaceOrientation:
已被弃用,官方文档告诉我们使用 viewWillTransitionToSize:withTransitionCoordinator
代替。这为我们(通过 transitionCoordinator
)提供了一种与过渡一起制作动画的方法和一个完成块,但没有直接回调真正的过渡“结束”。
transitionCoordinator
中的另一种方法是 notifyWhenInteractionEndsUsingBlock:
,但这似乎报告过渡的交互部分结束,而不是整个过程。
那么,执行此操作的“官方”方式是实现 animateAlongsideTransition:completion
并简单地忽略动画选项吗?
我知道我们仍然可以使用旧的 didRotateFromInterfaceOrientation:
,但尽可能现代化总是更好。
是的,您可以忽略动画选项,只需使用 'nil' 即可。
WWDC 2014 示例'View Controller Advancements in 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];
}];
}
适用于 iOS9.
我还没有看到这个问题的明确答案,围绕 iOS 8 的变化有很多噪音,但我想在 iOS 9 中解决它:
界面方向改变ENDS后回调的正确方式是什么?
从 iOS 9 开始,didRotateFromInterfaceOrientation:
已被弃用,官方文档告诉我们使用 viewWillTransitionToSize:withTransitionCoordinator
代替。这为我们(通过 transitionCoordinator
)提供了一种与过渡一起制作动画的方法和一个完成块,但没有直接回调真正的过渡“结束”。
transitionCoordinator
中的另一种方法是 notifyWhenInteractionEndsUsingBlock:
,但这似乎报告过渡的交互部分结束,而不是整个过程。
那么,执行此操作的“官方”方式是实现 animateAlongsideTransition:completion
并简单地忽略动画选项吗?
我知道我们仍然可以使用旧的 didRotateFromInterfaceOrientation:
,但尽可能现代化总是更好。
是的,您可以忽略动画选项,只需使用 'nil' 即可。
WWDC 2014 示例'View Controller Advancements in 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];
}];
}
适用于 iOS9.