ios Storyboard 中设置hidesBottomBar

作者: 圆脸黑猫警长 | 来源:发表于2016-10-26 17:59 被阅读709次

最近在踩坑storyboard,发现了许多奇奇怪怪的问题。逐步把这些问题汇总记录下来,希望可以帮到其他人。

在使用storyboard中push一个新界面时,需要隐藏底部的tabbar。这时只需在storyboard中选中属性Hide Bottom Bar On Push 即可实现push界面后隐藏。如下图:


勾选此处.png

跳转后界面的中有一个按钮,其约束如下图:


按钮约束的设置情况.png

看起来没有什么问题
但是,使用的过程中发现会出现界面跳动的现象。push到下一个界面后发现界面会突然往下跳动。


往下突然的移动.gif

为什么会出现如此的情况。排查后发现,按钮下边距的相对并不是self.view 而是bottom layout guide

底部约束相对线.png

分析原因,hide bottom tabbar后,bottom layout guide 会变化,而且是延迟变化的,可能是在viewDidAppear后,因为已经明显可见的界面跳动。所以设置的时候应该基于view,而不要基于guide,以免出现难以排查的界面显示问题。

相关文章

网友评论

  • 编程文学家:好文章。折腾了一中午,才发现是楼主所诉的问题,拨云见日,茅塞顿开。谢谢!
  • Beyond_JG:现在有了问题,就是需要适配iOS11,那就需要基于safearea,基于safearea也跳一下,但是不基于safearea,iPhone X有问题
    曉__曉:对的,iPhone X有问题了,怎么解决的?
  • 疗效显著:赞赞赞!
    我也是纯代码转SB,之前纯代码页面,都是Push之前设置vc.hidesBottomBarWhenPushed = YES; 显示都是正常的,换了SB之后,勾选那个选项,突然发现这个隐藏效果是有延迟的,肉眼都可见的延迟,然后把SB里面的那个勾选去掉,再重新用代码写属性也不行,找了半天,直到看到这篇文章,发现竟然是这个约束问题导致的,真是解决了一大困惑,感谢分享!

本文标题:ios Storyboard 中设置hidesBottomBar

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