检测加载方向

时间:2018-03-23 09:50:10

标签: ios swift xcode uideviceorientation

当我的模拟器在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,如何避免这种情况发生并确定正确的方向?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

if UIDevice.currentDevice().orientation.isLandscape.boolValue {
    print("landscape")
} else {
    print("portrait")
}