Ios 当设备正面朝上时,检测home按钮位于哪一侧

Ios 当设备正面朝上时,检测home按钮位于哪一侧,ios,swift,device-orientation,Ios,Swift,Device Orientation,作为我目前正在处理的应用程序的一部分,我需要单击一个图像,然后以正确的方向显示结果图像 请记住,用户可以在任何可用方向(纵向、横向左/右、面朝上)单击图像。我能够实现所有模式的预期结果,但面朝上的方向 我的问题是:有没有一种方法可以检测当设备正面朝上时,我的主页按钮会在哪一侧?如果是这样,我如何才能达到同样的效果?请注意,该应用程序是一个仅用于肖像的应用程序。所以,我想,使用状态栏定向几乎是不可能的 期待听到您的想法。您可以: if UIDevice.current.orientation ==

作为我目前正在处理的应用程序的一部分,我需要单击一个图像,然后以正确的方向显示结果图像

请记住,用户可以在任何可用方向(纵向、横向左/右、面朝上)单击图像。我能够实现所有模式的预期结果,但面朝上的方向

我的问题是:有没有一种方法可以检测当设备正面朝上时,我的主页按钮会在哪一侧?如果是这样,我如何才能达到同样的效果?请注意,该应用程序是一个仅用于肖像的应用程序。所以,我想,使用状态栏定向几乎是不可能的

期待听到您的想法。

您可以:

if UIDevice.current.orientation == .portraitUpsideDown {
     print ("Divice oriented vertically, home button on top")
}
还有面朝下、面朝上等。
查看以了解更多信息。

根据您的需要,您应该使用
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.")
    }

谢谢你的回答,但这完全是我无法控制的,因为这是客户的要求。如果同时支持纵向和横向,这可能是一个可行的解决方案,尽管需要大量工作来支持两个方向上的视图。但目前还没有解决我面临的问题。@iOSer没有问题。我们可以为需要的人保留这个答案。谢谢你的回答。获取主页按钮位置对于纵向、纵向倒置、横向左侧和横向右侧更容易。但是,当方向朝上时,此方法不会起作用。您是否想过使用开关进行此操作。我想不出同样的方法。这让我转到了b计划,该计划将显示一个旋转按钮。您找到这个问题的答案了吗?在这种情况下,当UIDeviceOrientation以UIScreen.main.boundsNa man.的比率返回faceUp/unknown时,我只能检测横向/纵向。。这是我以前公司的一个项目。从那以后我一直在前进,但据我记忆所及,这个问题仍然存在
    if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight {

        ...

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

        ...

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

        ...

    }
    else {

         ...
    }