我正在尝试根据屏幕方向在相机顶部制作相机叠加视图。由于即使您将屏幕方向锁定在设置上,相机仍会旋转其UI (实时预览中的闪光灯和相机按钮),如果我不移动我所拥有的元素叠加视图,它始终位于那些顶部。
我已经通过注册 UIDeviceOrientationDidChangeNotification
通知,然后阅读 [UIDevice currentDevice].orientation
上的值并设置我的转换值来完成此操作相机叠加视图。
问题是,当用户在iPhone上锁定界面时,UIDeviceOrientationDidChangeNotification
通知不会触发(但摄像头一直在旋转!)。
我尝试了很多替代方案,例如注册PLCameraDeviceOrientationChangedNotification
通知,我发现在将自己注册为每个通知的观察者时被解雇,但它不包含userInfo字典中的方向。
我还尝试设置NSTimer
以每0.5秒触发并检查[UIDevice currentDevice].orientation
,但它会在锁定时报告UIDeviceOrientationPortrait,无论实际的设备方向如何。
是否有任何方式我可以找到相机所处的方向,理想情况下,即使用户锁定了界面方向,它也会发生变化?
感谢。
答案 0 :(得分:1)
我的观点是,如果用户锁定设备方向,则无法获取有关方向的设备消息。
但加速度计从不说谎,应该为您提供正确的信息。
Juste看看: Detect iPhone screen orientation
编辑: 这是苹果的样本,用于使用加速度计。