UIImagePickerController给我黑色预览

6
我正在使用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

今晚我遇到了与相机预览相同的问题,问题的根本原因是……应用程序委托中与 UI 无关的代码在后台队列上进行了修改。

显然,只需要稍微动一下 AVFoundation 依赖的脆弱内部变量就会出现问题。

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

这篇文章(http://www.cocoanetics.com/2013/02/uiview-background-queue-debugging/)对于追踪 UI 是如何从后台队列进行修改非常有帮助。

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


0
如果这只是偶然发生的,我怀疑这不是内存问题。从UIImagePickerController获取的图像相当大。如果您设法以某种方式操作该图像,则您的内存可能无法支持它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接