在iOS7以前,狀态欄是獨立于viewController之外的。從iOS7開始,viewController的view都預設全屏,包括的狀态欄。
假設你的viewController中有一個UIScrollView的對象,而這個viewController又沒有在UINavigationController的棧中,那麼,很容易出現scrollView的内容往下偏移的情況。至于偏移了多少,我們借助reveal這個界面工具,能夠輕而易舉的獲知。 我遇到的情況就是偏移了20個點,借助reveal,我發現scrollView的contentInset為20.
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zM5QDMzUDNyIDOycDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
通過設定viewController.automaticallyAdjustsScrollViewInsets = NO,可以避免這個問題。
真是不知道這個自動調整什麼時候會有用,誰會做一個沒有導航欄同時以scrollView鋪滿的界面呢?
還有一個我遇到的因為viewController.automaticallyAdjustsScrollViewInsets引起的問題。
視圖層次如下。
screen
1.navigationBar
2.self.view
1.tableView
2.customTabbar
在點選表格後,push進入到另外一個viewController,在push回來的時候,表格最後一行的位子就偏下,被customTabbar擋住。
同樣,設定為NO,解決。
就我遇到的這兩個情形而言,viewController.automaticallyAdjustsScrollViewInsets = YES會使scrollView的inset盡量的鋪滿螢幕。
如果scrollView上面沒有導航欄,就會自動讓出20個點給狀态來,如果下面沒有UITabbar,就會直接鋪到螢幕底部。