我正在尝试根据屏幕方向在相机顶部制作一个相机覆盖 View 。因为即使您在设置中锁定屏幕方向,相机仍会旋转其 UI(实时预览中的闪光灯和相机按钮),如果我不移动我拥有的元素覆盖 View ,它停留在那些之上。
我已经通过注册到 UIDeviceOrientationDidChangeNotification
通知,然后读取 [UIDevice currentDevice].orientation
上的值来完成此操作 并设置相机叠加 View 的转换值。
问题在于,当用户锁定其 iPhone 上的界面时,UIDeviceOrientationDidChangeNotification
通知不会触发(但相机保持旋转!)。
我已经尝试了很多替代方法,比如注册到 PLCameraDeviceOrientationChangedNotification
通知,我发现在将自己注册为每个通知的观察者时被触发,但它不包含方向用户信息字典。
我还尝试设置一个 NSTimer
每 0.5 秒触发一次并检查 [UIDevice currentDevice].orientation
,但它总是在锁定时报告 UIDeviceOrientationPortrait,无论实际设备如何方向。
有没有任何方法我可以找出相机的方向,理想情况下即使在用户锁定界面方向的情况下也能在它发生变化时得到通知?
谢谢。
最佳答案
我认为,如果用户锁定了设备方向,就不可能获得有关方向的设备消息。
但加速度计从不撒谎,应该为您提供正确的信息。
只需看看: Detect iPhone screen orientation
编辑: 这是苹果的示例,用于使用加速度计。
关于iphone - 如何检测相机叠加 View 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363449/