我有一个使用摄像头界面的自定义屏幕。屏幕经常以封闭的虹膜“冻结”。摆脱此锁定状态的唯一方法是退出应用程序。

是什么原因导致相机光圈像这样保持在关闭位置?

最佳答案

通常,发生某些内存问题时会发生这种情况。像内存不足或某些时候,UICameraPickerController的初始化是由于对其的错误调用而释放的。

减少或避免这种情况的最佳方法是,无论何时尝试在分配和初始化时访问它,以及何时尝试从摄影机视图移动时,只需对其进行分配。

即使当应用程序进入后台(即最小化)时,也要重新分配UICameraPicker,而在进入前台(即最大化)时,再次对其进行重新分配。

基本上,我要做的是采用 .h 文件中声明的一个属性,如下所示:

@property (nonatomic, strong) UIImagePickerController *imagePicker;

然后在 .m 文件中,根据需要在“拍照片”按钮上对我进行合成。我使用以下代码显示图像选择器控制器。
if(self.imagePicker == nil || self.imagePicker == NULL)
    imagePicker = [[UIImagePickerController alloc]init];
<Then put the code for use of picker.>

然后在将图像存储在适当的属性或iVar中之后,在选择器的委托方法中获取图像时, imagePickerController:didFinishPickingMediaWithInfo 使用以下代码释放imagePicker的实例。
self.imagePicker = nil;

这将为我解决问题。也许这也将帮助您解决自己的问题。

关于ios - iOS 5相机光圈无法打开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9420051/

10-08 20:57