美文网首页IOS三人行
iOS使用AutoLayout底部TabBar被遮挡问题

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

作者: lyonLiu | 来源:发表于2016-06-07 19:32 被阅读4408次
    问题描述:

    在使用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高度,加上该属性就可以自动适配
    

    相关文章

      网友评论

        本文标题:iOS使用AutoLayout底部TabBar被遮挡问题

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