iOS使用AutoLayout底部TabBar被遮挡问题

问题描述:

在使用AutoLayout代码布局时,有时会碰到父视图是TabBarController的一个子视图,当我们试图将一个View约束到父视图的底部时,会发现View会被TabBar挡住,比如下图:


Paste_Image.png

因为在iOS7以上的版本中,视图是默认扩展到全屏的,从(0,0)开始一直到屏幕的右下角。

处理方法

因为底部标签栏的高度默认为49,我们可以设置底部视图的底部约束为49,这样就可以解决问题了,但是如果我们有另一个需求,即购物车界面是TabBarController的一个子视图,也有不作为TabBarController子视图的时候,这时候进行跳转到购物车页面的时候,49约束的问题就依旧存在!!!

为了让视图符合我们的需求,我们可以在父视图的ViewController中进行如下设置:

  • OC代码:
self.edgesForExtendedLayout = UIRectEdgeNone;
  • Swift代码:
this.EdgesForExtendedLayout = UIRectEdge.None;
结果:

这样视图就可以正常显示了,如下图:

不作为TabBarController子视图时
作为TabBarController子视图时

附注

此属性也适用于导航栏
当viewcontroller没有scrollview的时候,系统不会自动为其适配64高度,加上该属性就可以自动适配
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容