gpt4 book ai didi

uiview - iOS 9 中界面旋转结束时的回调?

转载 作者:行者123 更新时间:2023-12-04 02:16:48 24 4
gpt4 key购买 nike

我还没有看到这个问题的明确答案,关于 iOS 8 变化的声音很多,但我想针对 iOS 9 解决这个问题:

在界面方向更改结束后获得回调的正确方法是什么?

从 iOS 9 开始,didRotateFromInterfaceOrientation: 已被弃用,官方文档告诉我们改用 viewWillTransitionToSize:withTransitionCoordinator。这为我们(通过 transitionCoordinator)提供了一种与过渡一起制作动画的方法和一个完成 block ,但没有直接回调真正的过渡“结束”。

transitionCoordinator 的另一个方法是 notifyWhenInteractionEndsUsingBlock:,但这似乎报告了过渡的交互部分结束,而不是整个过程。

那么,执行此操作的“官方”方法是实现 animateAlongsideTransition:completion,并简单地忽略动画选项吗?

我意识到我们仍然可以使用旧的 didRotateFromInterfaceOrientation:,但尽可能进行现代化总是更好。

最佳答案

是的,您可以忽略动画选项,只需使用 'nil' 即可。

来自 WWDC 2014“iOS 8 中的 View Controller 改进”的示例:

- (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];
}];
}

适用于 iOS 9。

关于uiview - iOS 9 中界面旋转结束时的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33335314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com