0

我正在尝试在UIImage使用相机拍摄图像时旋转一段时间。但是,我portrait只能在模式下获得预览。如何在landscape模式下显示预览图像?

4

1 回答 1

0

阅读文档揭示了UIImagePickerController这个有趣的花絮:

UIImagePickerController 类仅支持纵向模式。此类旨在按原样使用,不支持子类化。

尽管有 Apple 的警告,但仍有一种处理方式:

您可以在委托类中订阅轮换通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

然后,根据设备的当前旋转,您可以将 a 应用CGAffineTransform到覆盖视图。可以在此处找到此类转换的示例。该特定答案在 iOS 6 中对您没有帮助,因为shouldAutorotateToInterfaceOrientation永远不会对您的UIViewController子类进行调用。您最好的版本策略是订阅通知。请记住,您将在这里进行全手动操作,最好的办法是找出一种仅支持纵向模式的方法。

此外,请确保在完成后平衡通知调用与此调用:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
于 2012-10-16T07:10:52.990 回答