【发布时间】:2013-09-25 13:28:05
【问题描述】:
自从 iOS7 升级后,UIImagePickerController 出现了奇怪的行为。在这个应用程序中,我使用 UIImagePickerController 和 cameraOverlayView。
在 iOS6 中,我使用以下代码调用了UIImagePickerController:
_picker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) {
_picker.sourceType = UIImagePickerControllerSourceTypeCamera;
_picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
_picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
_picker.showsCameraControls = NO;
_picker.navigationBarHidden = NO;
_picker.toolbarHidden = YES;
_picker.wantsFullScreenLayout = YES;
_overlayViewController = [[OverlayViewController alloc] init];
_overlayViewController.picker = _picker;
_overlayViewController.frameSize = self.frameSize;
_overlayViewController.delegate = self;
_picker.cameraOverlayView = _overlayViewController.view;
}
else {
_picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
_picker.delegate = self;
其中OverlayViewController 是UIViewController,具有透明背景,可在屏幕上绘制一些自定义控件。
但现在在 iOS 7 中,摄像头是通过状态栏绘制的,并且在实时摄像头视图下方会出现一个黑条。
我可以通过将CGAffineTransformMakeTranslation 应用于UIImagePickerController 的cameraViewTransform 属性来解决这个问题,但是为什么会这样呢?
【问题讨论】:
-
想知道您是否能够在不转换的情况下修复它?
-
问题解决了吗?
-
@Wim Haanstra 嗨..你解决了这个问题吗?
标签: ios objective-c cocoa-touch ios7