iOS11开始,navigationBar变了。
iOS11之前,我们可以自定义任意大小的titleView,此时titleView直接加在navigationBar上。
self.navigationItem.titleView = customView;
但是这个方法在iOS11不能用了,确切的说是不能“任意”的用了,navigationBar的高度被限制死了。iOS11之后苹果在navigationBar上加了一个contentView,如下图,如果赋值titleView,会在contentView上生成_UITAMICAdaptorView,然后customView加在其上。
改变之后的navigationBar就好像不太听从使唤了,这是我在Stack Overflow上搜索到的信息:
Q:# iOS11 customize navigation bar height
大意就是:求问如何改变navigationBar的高度。
有一个答案是这么写的:
大意就是:他问苹果能不能改,苹果说了不能更改,如果有进一步消息会通知他。
后来我的处理方法是判断系统版本,iOS11之前用一种布局,iOS11之后用另一种布局。当然也可以把系统的navigationBar隐藏掉,然后完全自定义,而不是去改系统的titleView。