文章部分轉載自:https://blog.csdn.net/a411360945/article/details/78067167
最近由於Apple 更新了iOS 11版本,在系統升級之後,發現項目中之前適配好的titleView 發生瞭如下變化:
iOS 11 之前
iOS 11
WTF?
在iOS 11中titleView的寬度設置了沒有效果,也沒有拉伸展示,縮成一坨了。項目中有好多地方用到了titleView這個屬性,怎麼辦?
打開Xcode 查看視圖層級功能,發現在iOS 11 中Apple 改變了UINavigationBar的視圖層級,titleView不是加到NavigationBar上了,而是加到UINavigationBarContentView上
那麼怎麼解決這個問題呢?
在你自定義的titleView中重寫intrinsicContentSize 的Get 方法,如下:
- (CGSize)intrinsicContentSize
{
return UILayoutFittingExpandedSize;
}
然後再次運行項目,你會發現和之前的效果一樣了。
----華麗的分割線----
以上部分是看到有人分享轉載的,發現個問題,- (CGSize)intrinsicContentSize方法如果return UILayoutFittingExpandedSize;的話會佔據全部title。如果是自定義的view貼在上面的話是會變形的。這邊返回的話,可以return一個CGSize,具體的大小。