首先我要说明一下,我么有使用任何框架,想跟我讨论框架的请移步留言区(留言区在哪?我也不知道)。因为功能比较简单,所以这个模块的功能全部使用原生Api实现。
功能需求:
点击头像选取相册内的照片,选取之后可以进行编辑操作(其实就是放大、缩放和移动位置,渣编辑效果,不过已经满足需求了),然后点击选取之后把图片存到本地并且显示在头像位置;其中涉及控件边框设置、切圆角、图片存入Document中等等不是我今天讨论的内容,不过我是活雷锋,给大家已经找好链接了,你们点击对应的链接就可以看到相关技术了!
先上贴图:
问题描述:
进入编辑页面的时候状态栏会消失(在微信的选取头像操作里也有这种情况,不过他们后来修复了,他们使用的修复方式是进入图片编辑页面时让状态栏显示出来),选取成功之后在
- (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”