美文网首页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