记录曾经踩过的坑~自定义titileView全屏宽

先看两张图:

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);

}];

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Q:导航栏上自定义titleView时,titleView上的button和点击手势失效 A:两步解决 1、在自定...
    SYSYSY阅读 1,495评论 0 0
  • 1.不可变数组转变为可变数组声明实例变量的数组 必须记得实现 对于遍历数组找到对象后 如果还需要查找 记得先结束 ...
    小新xin阅读 4,235评论 0 1
  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,325评论 1 14
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 8,927评论 2 4
  • 01 保暖 最近天气温度总是不稳定,一会儿冷一会儿热的,每天都不知道穿什么…… 包子:脖子好冷啊=_= 然后转向少...
    推剧小公举阅读 1,722评论 0 0