【发布时间】:2012-02-20 15:17:04
【问题描述】:
我正在尝试根据屏幕方向在相机顶部制作相机叠加视图。因为即使您在设置中锁定屏幕方向,相机仍会旋转其 UI(实时预览中的闪光灯和相机按钮),如果我不移动我拥有的元素覆盖视图,它停留在这些视图之上。
我已经通过注册 UIDeviceOrientationDidChangeNotification 通知,然后读取 [UIDevice currentDevice].orientation 上的值并设置我的相机叠加视图的变换值来完成此操作。
问题在于,当用户在 iPhone 上锁定界面时,UIDeviceOrientationDidChangeNotification 通知不会触发(但相机一直在旋转!)。
我尝试了许多替代方法,例如注册PLCameraDeviceOrientationChangedNotification 通知,当我将自己注册为每个通知的观察者时,我发现它被解雇了,但它不包含 userInfo 字典上的方向。
我还尝试将NSTimer 设置为每 0.5 秒触发一次并检查[UIDevice currentDevice].orientation,但它总是在锁定时报告 UIDeviceOrientationPortrait,无论实际设备方向如何。
有没有任何方式我可以找出相机所在的方向,并且理想情况下,即使用户锁定了界面方向,也可以在它发生变化时得到通知?
谢谢。
【问题讨论】:
标签: iphone ios cocoa-touch