在iOS 8中不推荐使用InterfaceOrientation

时间:2015-04-18 13:24:25

标签: ios8 uikit uiinterfaceorientation autorotate auto-rotation

我没有在项目中使用Size类,并继续使用旧方法进行视图控制器方向。我收到了弃用警告,例如当我使用以下代码时:

    if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
      ...
    }

我搜索了很多但找不到合适的方法来修复它。有什么建议吗?

3 个答案:

答案 0 :(得分:9)

应该改变

500

if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
  ...
}

答案 1 :(得分:7)

从iOS8开始,Apple建议使用TraitCollections(Size Classes)而不是interfaceOrientation。

此外,由于iOS 9和新iPad具有“多任务处理”功能,因此在某些情况下设备方向与窗口比例不符! (这会导致您的应用程序UI失效)

但是,有时TraitCollections不能满足您的所有设计需求。对于这些情况,Apple建议比较视图的界限:

if view.bounds.size.width > view.bounds.size.height {
    // ...
}

我很惊讶,但您可以在21'15查看WWDC 2015视频Getting Started with Multitasking on iPad in iOS 9

答案 2 :(得分:0)

有些人可能需要使用UIDevice Orientation

if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {
   ...
}

而不是状态栏方向

if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])) {
   ...
}