检测加载方向
Detecting orientation on loading
当我的模拟器在 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
,如何避免这种情况发生并确定正确的方向?
您可以通过UIApplication.shared.statusBarOrientation.isPortrait
or UIApplication.shared.statusBarOrientation.isLandscape
查看当前方向。
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("landscape")
} else {
print("portrait")
}
当我的模拟器在 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
,如何避免这种情况发生并确定正确的方向?
您可以通过UIApplication.shared.statusBarOrientation.isPortrait
or UIApplication.shared.statusBarOrientation.isLandscape
查看当前方向。
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("landscape")
} else {
print("portrait")
}