首先我們來(lái)看一下這張系統(tǒng)設(shè)計(jì)圖。

可以大致看出來(lái),每一行都是大致一樣,不一樣的只是圖片的樣式以及圖片旁邊的介紹文字。
每一行的樣式大致相同,只是數(shù)據(jù)不一樣的情況下,豎直方向可以滾動(dòng)的情況下,我們可以使用UITableView來(lái)實(shí)現(xiàn)。
那么我們就來(lái)簡(jiǎn)單的使用一下UITableView。后面的文章會(huì)完善代碼質(zhì)量。

此文章只講一下簡(jiǎn)單的用法。圖片有點(diǎn)小 我就再用文字解說(shuō)一下:
numberOfSectionsInTableView:(UITableView*)tableView
告訴編譯器 這個(gè)tableView有多少組
tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
告訴編譯器 這個(gè)tableView在section組 中有多少行
tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
告訴編譯器 “第indexPath.section組”? “第indexPath.row行”的應(yīng)該顯示什么樣
這樣就可以添加我們想要的數(shù)據(jù)了.
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器),可以用簡(jiǎn)單的話說(shuō)就是 視圖,業(yè)務(wù)邏輯,數(shù)據(jù)是分開(kāi)的,單獨(dú)改變哪個(gè),都不影響。


我用的方法就是初步了解的懶加載方法,就是聲明了一個(gè)NSArray 里面是tableViewData的數(shù)據(jù)集, 把tableView的數(shù)據(jù)代理相應(yīng)的地方換成對(duì)應(yīng)的groupDatas的值,比如:

這樣的話,我們?cè)诟淖償?shù)據(jù)的話,不需要改變我們界面的響應(yīng)代碼,只需要改變數(shù)據(jù)加載的地方,groupDatas的加載。

以上是 tableView中g(shù)roup的樣式,但是tableVIew的樣式中還有一種樣式為UITableViewStylePlain,這個(gè)樣式,在有footer 尾部描述的時(shí)候是這個(gè)樣子的:

看左上角會(huì)有重疊,去掉狀態(tài)欄的代碼為:

主要UITableViewStylePlain和UITableViewStyleGrouped的樣式的區(qū)別還有一個(gè)細(xì)節(jié),細(xì)節(jié)為數(shù)據(jù)多的時(shí)候,UITableViewStylePlain的head不會(huì)跟UITableViewStyleGrouped的head一樣向上滾動(dòng),只能是下一個(gè)head換掉這個(gè)head,表現(xiàn)為:

從圖中可以看到,小學(xué)生下面的公主妹已經(jīng)向上滾動(dòng),而小學(xué)生沒(méi)有,依然是在頂部,在TableViewStylePlain中的footer也是一樣的,這個(gè)footer的替換也是在下一個(gè)的footer之前會(huì)一直在屏幕中顯示,知道一下個(gè)的footer頂?shù)暨@個(gè)footer,跟head樣式一樣。
還可以根據(jù):

可以看到,tableView有兩個(gè)委托方法,一個(gè)是數(shù)據(jù)源的委托,一個(gè)是tableView的委托,那我們看一下,tableView的委托都有什么東西:其中的一部分,

截的這個(gè)圖,名字跟意思都很明了,分別是改變每行的高度,head以及footer的高度,還有很多方法,我沒(méi)有截圖,在后面,如果接觸到,有感悟,我會(huì)寫(xiě)上。。
這樣的話,是我對(duì)于MVC思想以及UITableView的基本了解。以后會(huì)有幾片連續(xù)的文章會(huì)對(duì)TabelView的逐漸進(jìn)行了解。