最近在寫項目的其中一個page,但是發現,autolayout都跟其他所有page相同,但是顯示出來的效果不同:
webview上邊被navigationBar遮擋住了
通過xcode的 Debug View Hierarchy 看到,正常的page:
UIWebView 占滿全屏,灰色
_UIWebViewScrollView 占滿全屏,透明
UIWebBrowserView 未全屏,實際顯示web頁面
如下圖:
UIWebView:
uiwebview.png
_UIWebViewScrollView:
_UIWebViewScrollView.png
UIWebBrowserView:
UIWebBrowserView.png
而出錯的page,UIWebBrowserView 依然占滿全屏
于是google之,發現 automaticallyAdjustsScrollViewInsets
果然發現只有這個不正常的page,設置了automaticallyAdjustsScrollViewInsets=false,而其它page都沒有設置(默認是true)
那么來了解一下automaticallyAdjustsScrollViewInsets是做什么用的?
當automaticallyAdjustsScrollViewInsets = true時,如果view中存在唯一一個UIScrollView或者其子類view,那么它會自動設置相應的內邊距,這樣可以讓view占滿整個屏幕,又不會被navigation bar遮擋。這正是問題所在。