2016-08-04 65 views
0

我試圖建立一個有彈性的表視圖頭,我看到一個帖子在網上驗證碼:的TableView ContentInset和ContentOffset

override func viewDidLoad() { 
    tableView.contentInset = UIEdgeInsets(top: kTableHeaderHeight, left: 0, bottom: 0, right: 0) 
    tableView.contentOffset = CGPoint(x: 0, , y: -kTableHeaderHeight) 
    updateHeaderView() 
} 

我有一個小麻煩了解此代碼。

所以基本上它是做什麼的(假設屏幕是0至在高度500和kTableHeaderHeight = 200):

1)這是第一次通過在移動它通過kTableHeaderHeight添加填充到tableView的頂部contentInset屬性(此舉是關於tableView的框架)。那麼現在tableView是否存在從-200到500?

2)然後它將其邊界向上移動-kTableHeaderHeight。那麼contentOffset只能讓它在-200到500的區域內滾動?那麼爲什麼我們在這種情況下使用contentOffset -kTableHeaderHeight

回答

1

1)否,若插圖爲正,那麼它使表視圖面積小,像200,500

2)contentOffset是的tableview的狀態。因此當您將偏移量設置爲-200時,無論內容插入,它都會將表格視圖零點的內容零點移動到200。基本上它把當前的表格視圖內容放在它應該關於插入的地方

那麼,代碼的作用是保留自定義標題的200點位置,從不與表格視圖單元格內容重疊(如表格視圖API標題或頁腳所做的)

相關問題