当我的模拟器在portrait
时和我的viewcontroller loads initially
时,它打印出Landscape
而不是Portrait
,但是当我更改方向时,它会正确显示方向,向前。我做了以下
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if (UIDevice.current.orientation == UIDeviceOrientation.portrait || UIDevice.current.orientation == UIDeviceOrientation.portraitUpsideDown)
{
print("Portrait")
}
else
{
print("Landscape")
}
}
我不知道为什么它在最初加载时显示错误的方向但是一旦我旋转一切似乎都有效。
P.S。似乎模拟器最初加载时,方向是unknown
,所以选择else condition
,如何避免这种情况发生并确定正确的方向?
答案 0 :(得分:1)
您可以按UIApplication.shared.statusBarOrientation.isPortrait
或UIApplication.shared.statusBarOrientation.isLandscape
检查当前方向。
答案 1 :(得分:0)
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("landscape")
} else {
print("portrait")
}