iOS基礎- iOS 11 navigationItem.titleView 適配

文章部分轉載自: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,具體的大小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章