在ios開發(fā)中,tableView幾乎是我們最常用到的幾種控件之一了,但是對于初學者來說。常常會對contentSize、contentOffset、contentInset三個概念模糊不清,以下是自己這三個屬性的自我理解(僅針對垂直方向):
一、基本概念的認識:
1.什么是tableView的內容(content):
包括三個方面分別是:cell、tableFooterView/tableHeaderView、sectionHeader/sectionFooter
2.contentSize.height:內容的高度
3.什么是內容的偏移量(offset):
內容的偏移量 = frame的頂部 - content的頂部
4.contentInset:內容周圍的間距(內邊距)
5.Frame
Frame.height:矩形框的高度
frame:以父控件內容的左上角為原點
二、認識進階:
1.沒有cell、沒有contentInset、沒有tableHeaderView和tableFooterView

Snip20160411_2.png
2.沒有cell、沒有contentInset、有tableHeaderView和tableFooterView

Snip20160411_4.png
3.有cell、沒有contentInset、沒有tableHeaderView和tableFooterView

Snip20160411_5.png
4.有cell、有contentInset、沒有tableHeaderView和tableFooterView

Snip20160411_6.png
5.有cell、沒有contentInset、有tableHeaderView和tableFooterView

Snip20160411_7.png
6.有cell、有contentInset、有tableHeaderView和tableFooterView

Snip20160411_8.png
7.沒有cell、沒有contentInset、有tableHeaderView和tableFooterView、有額外子控件{0、-40、375、40}

Snip20160411_10.png
8.沒有cell、沒有contentInset、沒有tableHeaderView和tableFooterView、有額外子控件{0、-40、375、40}

Snip20160411_11.png
9.有cell、沒有contentInset、有tableHeaderView和tableFooterView、有額外子控件{0、-40、375、40}

Snip20160411_12.png
10.有cell、有contentInset、有tableHeaderView和tableFooterView、有額外子控件{0、-40、375、40}

Snip20160411_13.png