iOS10以后调用系统相机拍照后黑屏问题的解决办法

背景:在开发的APP中调用系统相机拍照(UIImagePickerController),iOS8、iOS9上能正常拍照,iOS10以后拍照后出现黑屏,发现拍照图片其实存在的。

解决思路:在自己的测试机上对比了两款APP的iOS9和iOS10系统拍照的显示,一个是种子习惯,一个是QQ。结果如下:

iOS10以后调用系统相机拍照后黑屏问题的解决办法_第1张图片
iOS9.1(图1)


iOS10以后调用系统相机拍照后黑屏问题的解决办法_第2张图片
iOS10.1.1(图2)


很明显图2上拍照界面顶部状态栏显示了,并且和闪光灯图标交叉了,这么明显的样式问题为什么会同时发生在QQ还有其他APP上这引起了我的注意,就这样我在代码中加入如下方法:


- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

if ([UIDevice currentDevice].systemVersion.floatValue < 10.0) return;

if ([navigationController isKindOfClass:[UIImagePickerController class]] &&

((UIImagePickerController *)navigationController).sourceType == UIImagePickerControllerSourceTypeCamera) {

[[UIApplication sharedApplication] setStatusBarHidden:NO];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];

}

}


目的是在iOS10上显示拍照页的状态栏,iOS9上不显示状态栏,发现iOS10拍照黑屏问题解决。

这种问题经推测是苹果的bug,显示状态栏成了市场上APP不出现黑屏的临时解决办法。

你可能感兴趣的:(iOS10以后调用系统相机拍照后黑屏问题的解决办法)