iOS学习交流

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

2019-02-20  本文已影响4人  LeeCoder

先看两张图:
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);
}];

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

上一篇下一篇

猜你喜欢

热点阅读