隐藏导航栏返回按钮以及键盘引发的UI问题

隐藏返回按钮

当是某个界面被push进来的时候,其导航栏左侧会自动显示返回按钮。

备注:项目中对于pop手势的扩展使用的是FDFullscreenPopGesture分类。

一般会想到如下三种解决办法

方法一

self.navigationItem.leftBarButtonItem = nil;

但是方法一并不能隐藏返回按钮。

方法二

 self.navigationItem.hidesBackButton = YES;

能隐藏但是存在问题:当你进行pop手势但又不退出界面时,被我们隐藏的返回按钮会重新显示出来,而且显示不完全。


Snip20170810_10.png

显示三个点的控件信息如下,其实就是返回按钮:

Snip20170810_11.png

方法三

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] initWithFrame:CGRectZero]];

这是最好的解决方法,即用一个视图创建leftBarButtonItem,可以是一个frame为CGRectZero或者自定义样式的视图。

关于界面消失键盘的回收问题

如果某个界面通过监听键盘的显示和隐藏来控制UISCrollView的frame,当你通过pop手势又不完全退出界面时(并没有回收键盘),可能会引发UI上面的bug。也就是整个UISCrollView像右偏移而且其宽度会突变,就像这样的:


IMG_0538.PNG
IMG_0539.PNG

在这个过程中打印UISCrollView的frame如下:

Snip20170810_12.png

不过我自己单独测试似乎没有遇到上面的问题,只是大家可以注意下这个点,即进行pop手势时是否需要回收键盘。

Stay hungry,Stay foolish!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,677评论 4 61
  • 国庆期间,大女儿受同学之托,帮忙给养一段时间小猫。二女儿很喜欢猫,虽然我反对,但是猫还是如约到了我家,猫粮和沙石也...
    巅峰之旅阅读 196评论 0 0
  • 原型继承 借用构造函数 组合继承 原型式继承 寄生式继承 寄生组合继承 优点: 因为组合继承最大的问题是无论什么...
    黄小猛阅读 232评论 0 0
  • 11111@
    hahaqwer阅读 451评论 0 50
  • 我们是在云雾中行驶,从一片阴雨天驶过又进入一片阴雨天。雨下的很大,也很快,砸在脸上让人有一种相信自己活着的感觉。 ...
    大皖安利阅读 202评论 0 0

友情链接更多精彩内容