【问题标题】:iOS8 how to understand interface orientation from UIViewControllerTransitionCoordinator?iOS8如何从UIViewControllerTransitionCoordinator理解界面方向?
【发布时间】:2014-11-24 02:10:27
【问题描述】:

我正在调试一个在 iOS7.1 中运行良好的项目,但在 iOS 8.0 中没有正确布置其内容。我已将问题缩小到此方法:

 [self orientRootViewControllerForOrientation:rootViewController.interfaceOrientation];

iOS8 不再从 rootViewController.interfaceOrientation 返回正确的 UIInterfaceOrientation,而是返回“颠倒”。

阅读文档,我遇到了一个神秘的信息:

使用 viewWillTransitionToSize:withTransitionCoordinator: 来制作 基于界面的调整。

阅读有关 UIViewControllerTransitionCoordinator 的文档,我认为它没有任何属性。 如何修改需要界面方向的方法以从 UIViewControllerTransitionCoordinator 获取其方向?

【问题讨论】:

    标签: objective-c ios8 uiinterfaceorientation autorotate transition-coordinator


    【解决方案1】:

    基本上你现在应该根据可用大小来布局你的内容,而不是旋转。这导致支持旧的基于轮换的代码非常痛苦。

    视图控制器转换协调器提供了一个UIViewControllerTransitionCoordinatorContext,它有一个旋转因子。这可以给你你需要的提示吗? 这个blog post 也提到了这一点。

    您也有通常的设备 ([UIDevice currentDevice].orientation) 或状态栏方向。 如果您正在使用 iOS 6 旋转方法,this post 也有相关信息。

    【讨论】: