如何知道iOS 8扩展中的当前interfaceOrientation?

Hen*_*nry 7 ios ios8 ios-app-extension custom-keyboard

UIViewController的InterfaceOrientation已弃用且Document建议使用[[UIApplication sharedApplication] statusBarOrientation],但iOS 8的扩展中没有sharedApplication.


正如@Retro所提到的,在大多数情况下,您可以使用self.traitCollection.verticalSizeClassself.traitCollection.horizontalSizeClass在UIViewController中获取方向信息.

Ret*_*tro 11

一个UITraitCollection对象提供一个UIViewController对象,管理一组的意见,使您的应用程序的界面的一部分的特征细节.这些特征或特征定义视图控制器的大小类,显示比例和设备惯用语.创建视图控制器时,将自动为该视图控制器创建特征集合.

您可以创建和修改视图控制器的特征集以自定义您的应用程序.以下方法创建仅包含传递参数的新特征集合:

traitCollectionWithDisplayScale:

traitCollectionWithUserInterfaceIdiom:

traitCollectionWithHorizontalSizeClass:

traitCollectionWithVerticalSizeClass:
Run Code Online (Sandbox Code Playgroud)

  • 这个想法是你不应该再那么多地考虑"方向",而是根据大小类来考虑.您的界面需要具有适应性,特别是考虑到新的iOS9多任务视图,并且设备的方向无法准确判断您的布局在给定点应该是什么样子. (2认同)