返回错误的设备方向

Wrong device-orientation returned

我想我在 UIDevice.orientation 变量中发现了一个错误。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)
    if UIDevice.current.orientation.isPortrait{
        print("Orientation is Portrait")
    }
    else{
        print("Orientation is Landscape")
    }
}

如果我将设备 (Iphone 5) 拿在手里,一切正常,但如果它平放在 table 上,我会得到 "Orientation is Landscape",即使一切都显示在纵向和设备本身不旋转。 有什么办法可以解决这个问题吗?

// 编辑:此测试在按钮操作中也失败了。

除了纵向和横向之外,还有更多方向。您正在检查肖像并假设其他一切都是风景。它不是。在这种情况下,实际方向可能是“正面朝上”。

除了纵向和横向还有第三个选项UIDevice.current.orientation.isFlat,您只检查纵向