如何获得UIInterfaceOrientation的输出?

时间:2018-10-03 18:24:31

标签: ios iphone swift uiinterfaceorientation uideviceorientation

我希望能够使用iOS获得view应用程序UIInterfaceOrientation的方向。

这与UIDevice.current.orientation不同,因为它返回设备应如何旋转而不是实际旋转,并有可能返回unknown

我注意到UIInterfaceOrientation.portraitUIInterfaceOrientation.portraitUpsideDownUIInterfaceOrientation.landscapeLeftUIInterfaceOrientation.landscapeRight,但是我不确定如何检测到它们。

我将需要这样做,以便User Interface可以正确更新,当UIDevice.current.orientation返回unknown不正确方向时,它将破坏UI。

1 个答案:

答案 0 :(得分:1)

请在此处阅读文档:

https://developer.apple.com/documentation/uikit/uiinterfaceorientation

尤其是第一段内容:

  

从iOS 8开始,您应该使用UITraitCollection和UITraitEnvironment API,以及这些API中使用的size类属性,而不是使用UIInterfaceOrientation常量或以其他方式编写应用程序的界面方向。

通常来说,您的代码不应取决于设备的当前接口方向。相反,它应该依靠当前视图控制器的特征来处理方向更改。有关更多信息,请参见:

https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/TheAdaptiveModel.html