UIImagePickerController给我一个黑色预览

时间:2012-05-17 15:20:31

标签: iphone ios uiimagepickercontroller

我正在使用UIImagePickerController拍摄照片。我正在使用以下代码:

UIImagePickerController* UIPicker = [[UIImagePickerController alloc] init];
UIPicker.delegate = self;
UIPicker.sourceType= UIImagePickerControllerSourceTypeCamera;
[UIPicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto];
UIPicker.allowsEditing=NO;
[self presentModalViewController:UIPicker animated:YES];
[UIPicker release];

问题是随机我将预览作为黑屏,如果它发生一次,那么它永远不会恢复,直到我们终止并重新启动应用程序。

我从UIImagePickerControllerDelegate获得了正确的图片,但是当UIImagePickerController将相机作为源类型时我有预览问题。

2 个答案:

答案 0 :(得分:0)

如果它随机发生,我怀疑它是一个内存问题。 UIImagePickerController中的图像非常大。如果你设法以某种方式操纵图像,你的记忆可能无法支持。

答案 1 :(得分:0)

我今晚在相机预览中遇到了同样的问题,问题的根本原因是......在代理委托中完全不相关的代码修改了后台队列上的UI。

显然,AVFoundation所依赖的脆弱的内部变量并没有太大的帮助。

一旦我从后台队列中删除了对UI代码的调用,相机预览变得快速可靠。

这篇文章(http://www.cocoanetics.com/2013/02/uiview-background-queue-debugging/)非常有助于跟踪从后台队列中修改UI的位置。

我还建议您查看此问题的答案(iOS 7 UIImagePickerController has black preview