正如标题所述,我正在开发的应用程序存在一个问题,该问题仅在应用程序在进入后台后重新启动时才会出现.
相机光圈或快门卡在关闭位置.有趣的是你仍然可以拍照,但你看不到预览.拍摄照片后,视图中会正确显示.
如果应用程序完全关闭,则在启动应用程序时不会发生此问题.我可以拍照,添加效果等,每次打开相机都能正常工作.
以下是重现问题的确切步骤:
1)我打开应用程序,一切正常.
2)应用程序通过按主页按钮或来电进入后台.
3)当应用程序进入前景/重新打开并且访问摄像机时,显示快门屏幕并在卡住位置保持关闭状态.
4)解决它的唯一方法是关闭模态视图相机控制器并再次按下相机按钮.
我做了一些研究以找到答案并且没有提出任何问题.没有内存泄漏,我已经检查了仪器中的内存分配,没有什么不寻常的.
希望有人有解决方案,我很感激帮助.
先感谢您.
我在从 CIImage 获取 UIImage 时遇到问题。下面的代码行在 iOS6 上工作正常:(输出图像是 CIImage)
self.imageView = [UIImage imageWithCIImage:outputImage];
Run Code Online (Sandbox Code Playgroud)
或者
[self.imageView setImage:[UIImage imageWithCIImage:outputImage]];
Run Code Online (Sandbox Code Playgroud)
当我在运行 iOS 5 的设备上运行同一行代码时,imageView 为空白。如果我记录 UIImage 的 size 属性,它是正确的,但图像永远不会显示在屏幕上。
当我使用 CGImageRef(如下所示)时,它在两个设备上都可以正常工作,但是当我进行堆快照分析时,它会导致巨大的内存增长。
context = [CIContext contextWithOptions:nil];
CGImageRef ref = [context createCGImage:outputImage fromRect:outputImage.extent];
self.imageView.image = [UIImage imageWithCGImage:ref scale:1.0 orientation:UIImageOrientationUp];
CGImageRelease(ref);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 UIImage imageWithCIImage 不起作用?根据 UIImage 类参考,它应该适用于 iOS5 及更高版本。另外为什么使用 CGImageRef 会导致如此大量的堆增长?
谢谢