automaticallyAdjustsScrollViewInsets大家肯定熟悉了较解,也遇到過類似的坑(tableView或scrollView的莫名其妙的偏移)通過設(shè)置該屬性的值(automaticallyAdjustsScrollViewInsets =NO)填坑的。有人會(huì)問料按,我就沒設(shè)置該屬性的值(automaticallyAdjustsScrollViewInsets =NO)為什么沒有偏移呢?又有人會(huì)問,怎么有時(shí)候偏移的高度不一樣?有時(shí)候20迁央,有時(shí)候64?
注意:1)只有根視圖的第一個(gè)子視圖是scrollView automaticallyAdjustsScrollViewInsets=YES才有用滥崩。
2)當(dāng)隱藏導(dǎo)航欄,scrollView的contentInset的top為20岖圈,如果再隱藏狀態(tài)欄contentInset的top為0。
ios 6到ios 7钙皮,viewController的根view的起始點(diǎn)做了調(diào)整蜂科,(0,64)--->(0,0)。這樣的改變導(dǎo)致一個(gè)問題短条,scrollView有64像素的大小被導(dǎo)航欄擋著了导匣。蘋果早就想到了,所以主角上場(chǎng)了茸时,同樣ios 7出來的新屬性automaticallyAdjustsScrollViewInsets贡定,蘋果默認(rèn)自動(dòng)設(shè)置了scrollView的contentInset來適配屏幕以達(dá)到不被導(dǎo)航欄擋著。
最終可都,為了更好的避免這個(gè)坑缓待,推薦scrollView好的設(shè)置frame方法:automaticallyAdjustsScrollViewInsets ==NO,frame = (0,64,320,568)【5s為例】