美文网首页iOS DeveloperiOS 开发
这是我第一次被UIImagePickerController坑

这是我第一次被UIImagePickerController坑

作者: Even会编程 | 来源:发表于2016-04-12 16:10 被阅读1947次

首先我要说明一下,我么有使用任何框架,想跟我讨论框架的请移步留言区(留言区在哪?我也不知道)。因为功能比较简单,所以这个模块的功能全部使用原生Api实现。

功能需求:

点击头像选取相册内的照片,选取之后可以进行编辑操作(其实就是放大、缩放和移动位置,渣编辑效果,不过已经满足需求了),然后点击选取之后把图片存到本地并且显示在头像位置;其中涉及控件边框设置、切圆角图片存入Document中等等不是我今天讨论的内容,不过我是活雷锋,给大家已经找好链接了,你们点击对应的链接就可以看到相关技术了!

先上贴图:

编辑图片时状态栏消失了(别跟我说你看不到!) 选取图片后进入App页面状态栏依然是消失状态 这张图是点击其他页面,状态栏显示出来了,但是它的位置被占用了,可怜的家伙

问题描述:

进入编辑页面的时候状态栏会消失(在微信的选取头像操作里也有这种情况,不过他们后来修复了,他们使用的修复方式是进入图片编辑页面时让状态栏显示出来),选取成功之后在

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

代理方法中执行一系列操作,然后关闭图片选择器

[picker dismissViewControllerAnimated:YES completion:nil];

进入App中,第二张图,你会发现状态栏竟然还是保持着消失的状态,我试着采用

[[UIApplication sharedApplication] setStatusBarHidden:YES];

的方式并配合设置状态栏样式让状态栏显示出来,但是没有起作用,也尝试了网上写的UIImagePickerController出现时,statusBar消失的解决办法但是依然无效。

解决方案:

我在多次测试、分析之后发现进入编辑状态时吧,状态栏消失,回到App页面状态栏依然消失,但是我再次打开相册之后状态栏又回来了,之后我直接点击取消,我去,状态栏竟然恢复了。于是我想到了一个实现方式,在关闭图片选择器之前先popViewControllerAnimated一下,这样,状态栏会恢复,然后进入App之后就是正常的状态了,并不是正统的解决问题的方法,但是这是我测试和分析之后德出来的最优解决方案,分享给大家,需要的尽管拿去,转载时请注明“来自简书-EvenZhu”;对了,又一点需要注意,popViewControllerAnimated需要开启动画效果,dismissViewControllerAnimated需要关闭动画效果,这样就会实现忽略popViewControllerAnimated的效果,具体自己试验一下就明白其中的奥妙了。

PS:

原谅我链接的是外部地址,因为我没有写相关方面的知识,以后有机会写了,或者关注到这一块内容,我会链接到简书内部的!谢谢理解!

转载时请注明“来自简书-EvenZhu”

相关文章

网友评论

    本文标题:这是我第一次被UIImagePickerController坑

    本文链接:https://www.haomeiwen.com/subject/mecwlttx.html