最近在項目中很奇怪的發(fā)現(xiàn)表單控件頂部莫名其妙的會留出一段空白,使第一個 cell 不能置頂,研究發(fā)現(xiàn)該情況主要由于系統(tǒng)內(nèi)部自動布局功能引起的扣唱。tableView 繼承自scrollerView,打印tableView 的contentInset 屬性可以發(fā)現(xiàn)其值為 (64汞舱,0,0隆夯,0)钳恕,多了一個導(dǎo)航條的高度,這是因為在自動布局情況下系統(tǒng)自動幫我們統(tǒng)計了導(dǎo)航條高度蹄衷,依照這個思路忧额,我們可以從這三個方面著手解決
方案一:
認為改變 contentInset 的值,將其設(shè)為 uiedgeinsetzero 宦芦,注意需要在系統(tǒng)布局完成之后設(shè)置該值宙址,推薦寫在 viewdidappear和viewdielayout
方案二:
設(shè)置? self.automaticallyAdjustsScrollViewInsets = NO;? 該方法禁止系統(tǒng)自動調(diào)整? contentInset 的值
方案三:
設(shè)置? self.navigationController.navigationBar.translucent = NO;? 設(shè)置導(dǎo)航條的透明屬性,可以看到該值設(shè)置完成后 contentInset 處于歸零狀態(tài)调卑,但是 界面正式顯示區(qū)域 和 導(dǎo)航條之間會出現(xiàn)一條縫隙抡砂,謹慎使用大咱。
注意:
以上三個方法都需要在控制器界面布局完成后使用,推薦寫在 viewdidload和viewwillappear里面