什么是界面方向和设备方向之间的区别呢?两者看起来很相似,但它们之间的实际区别是什么?
接口方向可以是任何方向,不受设备方向的限制。设备方向是您所持设备的实际物理方向,这是不可变的;它是什么就是什么。如果您持有设备处于纵向,则设备方向为纵向。但是,仅因为设备处于纵向并不意味着您的界面也处于纵向。您可能需要应用程序仅提供横向方向,因此接口方向将与设备方向不同。
以下说明摘自此网站
UIDeviceOrientation是UIDevice类的一个属性,有以下可能的值:
UIDeviceOrientationUnknown
- 无法确定UIDeviceOrientationPortrait
- 主页按钮朝下UIDeviceOrientationPortraitUpsideDown
- 主页按钮向上UIDeviceOrientationLandscapeLeft
- 主页按钮向右UIDeviceOrientationLandscapeRight
- 主页按钮向左UIDeviceOrientationFaceUp
- 设备平放,屏幕朝上UIDeviceOrientationFaceDown
- 设备平放,屏幕朝下至于UIInterfaceOrientation,则是UIApplication的一个属性,只包含4种可能性,对应于状态栏的方向:
UIInterfaceOrientationPortrait
= UIDeviceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown
= UIDeviceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
= UIDeviceOrientationLandscapeRight
UIInterfaceOrientationLandscapeRight
= UIDeviceOrientationLandscapeLeft
(从文档中复制)例如,设备(实际的iPhone或iPod)可能处于UIDeviceOrientationLandscapeRight状态,但如果您的应用程序不支持该状态,则它(您的应用程序)仍可能处于UIInterfaceOrientationPortrait状态。
此外,要获取UIDeviceOrientation,您可以使用[[UIDevice currentDevice] orientation],而要获取UIInterfaceOrientation,您可以使用[[UIApplication sharedApplication] statusBarOrientation]
UIInterfaceOrientation
而不是UIDeviceOrientation
? - Maxi Mus