有些关于设备方向的问题,有些用户回答如下:
if UIDevice.current.orientation.isLandscape {
print("landscape")
} else {
print("portrait")
}
这是完全错误的,因为他们不知道它可以得到第三个结果:isFlat
因此它可以返回三个不同的结果:
if UIDevice.current.orientation.isLandscape {
print("landscape")
} else if UIDevice.current.orientation.isFlat {
print("flat")
} else { // UIDevice.current.orientation.isPortrait
print("portrait")
}
因此,如果设备处于平坦位置(isFlat
),如何检查该设备是否以横向或纵向模式显示内容?
更新
其中只有一个可以是true
如果isFlat
返回true
,则isLandscape
和isPortrait
都返回false
更新2
我最终使用:
private func isLandscape() -> Bool {
return self.view.frame.width > self.view.frame.height
}
或者我们可以使用UIApplication.shared.statusBarOrientation.isLandscape