iOS中,UIScrollView是可以滾動(dòng)的視圖悴务,其中最常用的UITableView就是繼承了UIScrollView睹限。
contentSize譬猫、contentInset和contentOffset 是scrollView三個(gè)基本的屬性。
contentSize:即內(nèi)容,就是scrollview可以滾動(dòng)的區(qū)域,比如frame = (0 ,0 ,100 ,200) contentSize = (100 ,400)羡疗,代表你的scrollview可以上下滾動(dòng)染服,滾動(dòng)區(qū)域?yàn)閒rame大小的兩倍。其中常用的是contentSize.height = 內(nèi)容的高度叨恨。
contentOffset:即偏移量,其中分為contentOffset.y=內(nèi)容的頂部和frame頂部的差值,contentOffset.x=內(nèi)容的左邊和frame左邊的差值,下面重點(diǎn)闡述contentOffset.y,因?yàn)閏ontentOffset.y最為常用柳刮。
contentInset:即內(nèi)邊距,contentInset = 在內(nèi)容周?chē)黾拥拈g距(粘著內(nèi)容),contentInset的單位是UIEdgeInsets,默認(rèn)值為UIEdgeInsetsZero。
說(shuō)完了三者的定義,下面介紹contentSize到底包含哪幾部分,tableView的內(nèi)容(即contentSize)僅包含下面三部分:
tableView的內(nèi)容(即contentSize):
1> cell
2> tableHeaderView\tableFooterView
3> sectionHeader\sectionFooter
其中
contentSize.height = 內(nèi)容的高度
contentOffset.y = 內(nèi)容的頂部 和 frame頂部 的差值
contentInset = 在內(nèi)容周?chē)黾拥拈g距(粘著內(nèi)容)
請(qǐng)讀者牢記上面的概念介紹,對(duì)理解下面的情形有一定的幫助痒钝。
情形1:
?沒(méi)有cell
?沒(méi)有contentInset
?沒(méi)有tableHeaderView\tableFooterView
情形2:
?沒(méi)有cell
?沒(méi)有contentInset
?有tableHeaderView\tableFooterView
情形3:
?有cell
?沒(méi)有contentInset
?沒(méi)有tableHeaderView\tableFooterView
情形4:
?有cell
?有contentInset
?沒(méi)有tableHeaderView\tableFooterView
情形5:
?有cell
?沒(méi)有contentInset
?有tableHeaderView\tableFooterView
情形6:
?有cell
?有contentInset
?有tableHeaderView\tableFooterView
情形7:
?有cell
?有contentInset
?沒(méi)有tableHeaderView\tableFooterView
?添加了一個(gè)子控件秉颗,frame是CGRectMake(0, 0, 300, 50)
?子控件的frame以父控件內(nèi)容左上角為坐標(biāo)原點(diǎn){0,0}
情形8:
?有cell
?有contentInset
?沒(méi)有tableHeaderView\tableFooterView
?添加了一個(gè)子控件,frame是CGRectMake(0,-50, 300, 50)
?子控件的frame以父控件內(nèi)容左上角為坐標(biāo)原點(diǎn){0,0}
情形9:
?有cell
?沒(méi)有contentInset
?有tableHeaderView\tableFooterView
?添加了一個(gè)子控件送矩,frame是CGRectMake(0, 0, 300, 50)
來(lái)自:http://www.reibang.com/p/9091e5f34df5