gpt4 book ai didi

ios - 检测 UIImagePicker OverlayView 方向

转载 作者:行者123 更新时间:2023-11-28 16:08:39 26 4
gpt4 key购买 nike

根据 Apple 的文档,图像选择器仅支持纵向模式。

但我希望我的自定义 OverlayView 能够检测设备方向,以便分别旋转我使用的自定义按钮/图像。

Apple 在 Camera App 上也这样做。如果您在横向模式下旋转设备,您会注意到“切换前置摄像头”按钮和“照片”缩略图也会自行旋转。

有什么办法可以实现吗?

最佳答案

好吧,在使用 imagePicker 的 Controller 上尝试了一些简单的操作并且确实有效。如果您有更好的解决方案,请告诉我。

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

override func viewDidLoad(){
super.viewDidLoad()

NSNotificationCenter.defaultCenter().addObserver(self,
selector: #selector(self.checkRotation),
name: UIDeviceOrientationDidChangeNotification,
object: nil)

}

编辑:在与 UIDevice.currentDevice().orientation 斗争之后,我注意到随机没有收到正确的方向结果。所以我关注了that one solution使用 CMMotionManager 在 stackoverflow 上发布。刚刚使用观察者和 async_patch 进行了一些更改。

SNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.accelerationGetOrientation), name: UIDeviceOrientationDidChangeNotification, object: nil)

func accelerationGetOrientation(){
uMM = CMMotionManager()
uMM.accelerometerUpdateInterval = 0.2

uMM.startAccelerometerUpdatesToQueue( NSOperationQueue() ) { p, _ in
if p != nil {
if abs( p!.acceleration.y ) < abs( p!.acceleration.x ) {
//LANDSCAPE
dispatch_async(dispatch_get_main_queue()) {
//Do UI Changes
}
}
else {
//PORTRAIT
dispatch_async(dispatch_get_main_queue()) {
//Do UI Changes
}
}
}
}
}

关于ios - 检测 UIImagePicker OverlayView 方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com