作为我当前正在处理的应用程序的一部分,需要单击图像,然后以正确的方向显示生成的图像。
请记住,用户可以按任何可用方向(人像,左/右风景,正面朝上)单击图像。我可以在所有模式下都能获得理想的效果,但面向上方向。
我的问题是:有没有一种方法可以检测到设备正面朝上时我的主页按钮在哪一侧?如果是这样,我怎么能达到相同的目的?请注意,该应用程序仅是纵向应用程序。因此,我猜想状态栏方向几乎不在窗口之内。
期待听到您对此的看法。
答案 0 :(得分:2)
您可以这样做:
if UIDevice.current.orientation == .portraitUpsideDown {
print ("Divice oriented vertically, home button on top")
}
还有faceDown
,faceUp
等。
查看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 {
...
}