获取当前界面方向的不同方法?
有三种方法可以获取我所知道的当前界面方向:
self.interfaceOrientation
-
[[UIApplication sharedApplication] statusBarOrientation]
-
[[UIDevice currentDevice] orientation]
他们之间有什么不同?
self.interfaceOrientation
返回self.interfaceOrientation
,接口的当前方向。 它是UIViewController中的一个属性,只能在UIViewController类中访问这个属性。
[[UIApplication sharedApplication] statusBarOrientation]
返回[[UIApplication sharedApplication] statusBarOrientation]
,即应用程序状态栏的当前方向。 您可以在应用程序的任何位置访问该属性。 我的经验表明,这是更有效的方法来检索真实的界面方向。
[[UIDevice currentDevice] orientation]
返回UIDeviceOrientation ,设备方向。 您可以在应用程序的任何位置访问该属性。 但是请注意,UIDeviceOrientation并不总是UIInterfaceOrientation。 例如,当您的设备在普通桌子上时,您可能会收到意外的值。
[[UIApplication sharedApplication] statusBarOrientation]
– 它始终等于四个值之一:纵向,横向左侧,右侧横向和上下纵向。
[[UIDevice currentDevice] orientation]
– 这个等于标准的四个值,还有:未知的,正面的或正面的。
[[UIApplication sharedApplication] statusBarOrientation]
– 更喜欢获取界面方向。
所有视图控制器都有这个function
override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) { //fromInterfaceOrientation.isLandscape }
或者你可以使用状态栏方向
if UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.Portrait { // }
在iOS 9中工作:)