從網(wǎng)易博客轉(zhuǎn)戰(zhàn)簡(jiǎn)書已經(jīng)3個(gè)月了,還沒提筆寫過(guò)一篇文章,那就從今天開始寫自己的第一篇文章吧,算是激勵(lì)自己繼續(xù)寫作的動(dòng)力,既然是開篇,那么就從iOS開發(fā)中容易混淆的三個(gè)概念開始吧,之前也看過(guò)一些其他作者寫的此類文章,但是大都是用純文字去描述這三者的區(qū)別,對(duì)于iOS初學(xué)者而言,不太容易理解,所以筆者就采用圖解的方式去闡述它們之間的區(qū)別,若有不恰當(dāng)之處,望讀者批評(píng)指正,共同進(jìn)步翰绊。
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)容周圍增加的間距(粘著內(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)容周圍增加的間距(粘著內(nèi)容)
請(qǐng)讀者牢記上面的概念介紹,對(duì)理解下面的情形有一定的幫助堪旧。
情形1:
?沒有cell
?沒有contentInset
?沒有tableHeaderView\tableFooterView
情形2:
?沒有cell
?沒有contentInset
?有tableHeaderView\tableFooterView
情形3:
?有cell
?沒有contentInset
?沒有tableHeaderView\tableFooterView
情形4:
?有cell
?有contentInset
?沒有tableHeaderView\tableFooterView
情形5:
?有cell
?沒有contentInset
?有tableHeaderView\tableFooterView
情形6:
?有cell
?有contentInset
?有tableHeaderView\tableFooterView
情形7:
?有cell
?有contentInset
?沒有tableHeaderView\tableFooterView
?添加了一個(gè)子控件削葱,frame是CGRectMake(0, 0, 300, 50)
?子控件的frame以父控件內(nèi)容左上角為坐標(biāo)原點(diǎn){0,0}
情形8:
?有cell
?有contentInset
?沒有tableHeaderView\tableFooterView
?添加了一個(gè)子控件,frame是CGRectMake(0,-50, 300, 50)
?子控件的frame以父控件內(nèi)容左上角為坐標(biāo)原點(diǎn){0,0}
情形9:
?有cell
?沒有contentInset
?有tableHeaderView\tableFooterView
?添加了一個(gè)子控件淳梦,frame是CGRectMake(0, 0, 300, 50)