本文屬個人筆記,不做詳解,僅供參考!
當導航欄存在時,ScrolloView的視圖會自動下移。
automaticallyAdjustsScrollViewInsets屬性介紹
- automaticallyAdjustsScrollViewInsets 是 iOS7 后新增的屬性,其默認值是 true
- 當其為 true 時。控制器會根據(jù)所在界面的 statusbar、navigationbar、tabbar 的高度,自動調(diào)整 scrollview 的 inset,防止其被導航欄等遮擋
- 這里的 scrollview 包括 UIScrollView,以及繼承自 UIScrollView 的 UITableView、UICollectionView、UITextView 等
- 要注意的是,如果有多個 scrollview,控制器只會自動調(diào)整其下第一個 scrollview 的 inset 屬性
automaticallyAdjustsScrollViewInsets為true造成的問題
雖然自動調(diào)整 **inset **很方便,但有時也會造成一些問題。
- 比如我們添加一個 textview,由于自動調(diào)整,textview 上面會空出一大塊區(qū)域
- 或者我們布局的時候就已經(jīng)把導航欄考慮在內(nèi),即起始位置從 (0,64) 開始。但由于內(nèi)邊距的自動調(diào)成,會造成內(nèi)容偏移
解決辦法
將 scrollview 自動調(diào)整 inset 功能關閉即可,有兩種方法修改。
- 在代碼中設置
self.automaticallyAdjustsScrollViewInsets = false - 在 storyboard 中設置

storyboard設置.png