美文网首页iOS学习交流
自定义导航栏titleView在iOS12上的问题

自定义导航栏titleView在iOS12上的问题

作者: LeeCoder | 来源:发表于2019-02-20 10:24 被阅读4次

    先看两张图:
    titleView导航栏在iOS10上的视图结构层

    20190220100727.png
    titleView导航栏在iOS12.2上的视图结构层
    20190220100049.png

    对比两者明显发现titleView在导航栏上的层级不同,iOS10上直接是添加在UINavigationBar,在iOS12上则多了个UINavigationBarContentView,titleView添加在这个上面了。

    导致的问题:

    在iOS10上设置titleView的frame后,赋值即可

    self.navigationItem.titleView = navTitleView;
    

    但是在iOS12上你会发现布局完全和预期不同,经过查看视图层级,发现在iOS12上titleView报约束错误,这也就是布局达不到预期的原因。
    我是这样解决的:

    self.navigationItem.titleView = navTitleView;
    //赋值后对titleView进行约束
    [navTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(nav.superview);
    }];
    

    如果哪位大牛有更好的解决方法,请不吝指教。

    相关文章

      网友评论

        本文标题:自定义导航栏titleView在iOS12上的问题

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