更新到12.1系統后發現在push進控制器后再返回,底部tabbar出現偏移錯位問題。
1.處理的方法 :
在Appdelegate里面,設置全局的Tabbar樣式
[[UITabBar appearance] setTranslucent:NO];
設置了tabbar的 translucent 屬性為NO以后,需要注意一下自己的頁面布局,底部從0(tabbar頂部)開始了,而不是從tabbar底部開始。
2.造成原因
這個問題是 iOS 12.1 Beta 2 引入的問題,只要 UITabBar 是磨砂的,並且 push viewController 時 hidesBottomBarWhenPushed = YES 則手勢返回的時候就會觸發。
出現這個現象的直接原因是 tabBar 內的按鈕 UITabBarButton 被設置了錯誤的 frame,frame.size 變為 (0, 0) 導致的。如果12.1正式版Apple修復了這個bug可以移除調這段代碼(來源於QMUIKit的處理方式),如果12.1正式版本Apple Fix了這個bug,可以移除掉這個bug
參考文章:https://www.jianshu.com/p/fb86dc70ba6c
