当设备正面朝上时,检测“主页”按钮在哪一侧

时间:2018-10-01 07:08:41

标签: ios swift device-orientation

作为我当前正在处理的应用程序的一部分,需要单击图像,然后以正确的方向显示生成的图像。

请记住,用户可以按任何可用方向(人像,左/右风景,正面朝上)单击图像。我可以在所有模式下都能获得理想的效果,但面向上方向。

我的问题是:有没有一种方法可以检测到设备正面朝上时我的主页按钮在哪一侧?如果是这样,我怎么能达到相同的目的?请注意,该应用程序仅是纵向应用程序。因此,我猜想状态栏方向几乎不在窗口之内。

期待听到您对此的看法。

3 个答案:

答案 0 :(得分:2)

您可以这样做:

if UIDevice.current.orientation == .portraitUpsideDown {
     print ("Divice oriented vertically, home button on top")
}

还有faceDownfaceUp等。 查看documentation了解更多信息。

答案 1 :(得分:0)

根据您的需要,您应该使用UIInterfaceOrientation而不是UIDeviceOrientation,尽管它们有些相似,但效果不同。

当设备方向为上/下时,UI方向仍为顶部,底部,左侧和右侧之一。

示例代码。

switch UIApplication.shared.statusBarOrientation {
    case .portrait:
      print("Home button in bottom")
    case .portraitUpsideDown
      print("Home button in top")
    case .landscapeLeft
      print("Home button in left")
    case .landscapeRight
      print("Home button in right")
    default:
      print("The interface may be rotating.")
    }

答案 2 :(得分:0)

    if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight {

        ...

    } else if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft {

        ...

    } else if UIDevice.current.orientation == UIDeviceOrientation.portrait {

        ...

    }
    else {

         ...
    }