關(guān)于UITableView的一點(diǎn)理解

開題

在很多時候感覺嘛,做iOS開發(fā)其實(shí)很簡單嘛,除了UI就是UI,好像看不出還有什么需要做的功能。在蘋果的iOS系統(tǒng)上面使用一款應(yīng)用,就會有一種簡約的感受,因?yàn)樵谟脩趔w驗(yàn)上蘋果爸爸已經(jīng)幫你優(yōu)化得很好了。

作為一名iOS狗,除了跪舔各種蘋果的logo外,還有就是享受自己設(shè)計(jì)的愛屁屁了....今天無聊就想說點(diǎn)自己對代碼的看法吧

關(guān)于UITableView

在iOS開發(fā)的頁面布局中,見的最多的就是UITableView這貨了,掌握了這貨,可以說是能勝任百分之七十的開發(fā)工作,剩下的百分之三十那就是iOS開發(fā)里最難的了,哈哈哈

在習(xí)慣使用StoryBoard來做頁面布局的時候,往頁面中拖入一個UITableView那是相當(dāng)快的。然而有時候就是要你手?jǐn)]一個UITableView出來,這時候就尷尬了啊,想個半天沒下手,因?yàn)椴恢缽暮蜗率?,真是尷尬。不得已老老?shí)實(shí)的回顧一下如何創(chuàng)建一個UITableView出來了,自己也手?jǐn)]了

腦子里的想著如何設(shè)計(jì)的

先說說UITableView的一些不能忽視的內(nèi)容,敲黑板了啊敲黑板了啊,UITableView最重要的是一個數(shù)據(jù)源和一個代理,數(shù)據(jù)源(UITableViewDatasource)是用來設(shè)計(jì)UITableView的內(nèi)容的,類似控制著多少行數(shù)據(jù)啊,每行數(shù)據(jù)怎么顯示的啊之類的,代理方法(UITableViewDelegate)這是做一些頁面交互的操作等,還有調(diào)整頁面的顯示樣式的,類似表頭啊什么的

要在一個頁面上顯示出一個UITableView,首先的創(chuàng)建UITableView嘛,在哪創(chuàng)建,在頁面初始化的地方創(chuàng)建,在ViewController的viewDidLoad方法里面給UITableView做初始化,然后給當(dāng)前的ViewController設(shè)置成為UITableView的代理,

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];

_tableView.dataSource = self;

_tableView.delegate = self;

[self.view addSubview:_tableView];

成為了代理,那就要實(shí)現(xiàn)相應(yīng)的代理方法。先是針對數(shù)據(jù)源的代理,我們需要一個數(shù)據(jù)源,一般來說都是以數(shù)組NSArray的形式作為_tableView的數(shù)據(jù)源,里面存儲這_tableView要顯示的數(shù)據(jù)。對數(shù)據(jù)源我們至少要實(shí)現(xiàn)兩個方法,一個是

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {

return dataArray.count;

}

一個是關(guān)于每行cell的相關(guān)設(shè)置的

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {

static NSString *cellID =@"testCell";

UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:cellID];

if(!cell) {

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];

}

//從數(shù)據(jù)源中取數(shù)據(jù)來顯示

NSString *title = dataArray[indexPath.row];

cell.textLabel.text= title;

return cell;

}

在這個方法里,我們就是從數(shù)據(jù)源里面取出相關(guān)的數(shù)據(jù)來顯示_tableView的內(nèi)容的。

簡單的tableView就算創(chuàng)建出來了,靈活就在我們怎么面對復(fù)雜的數(shù)據(jù)源的處理,如何處理,或者從一個頁面把數(shù)據(jù)源傳遞到另一個頁面去顯示,這些就是我們需要控制的地方了?;蛘呶覀兛梢試L試著封裝一個頁面,只需要傳遞一個數(shù)組到目標(biāo)頁面,把接收到的數(shù)組設(shè)置為tableView的數(shù)據(jù)源,然后調(diào)用一下tableView的刷新方法,就可以顯示出我們想要的數(shù)據(jù)了。

總結(jié)一下

寫的這點(diǎn)東西只是腦子里回顧一下如何創(chuàng)建一個tableView并顯示出來。習(xí)慣了復(fù)制和粘貼,在我們的腦子里只是存著方法,卻沒存著自己的代碼,等到需要用的時候還是要去查找一遍,那就太浪費(fèi)時間了。作為一個有目標(biāo)的iOS狗,還是給自己點(diǎn)時間來補(bǔ)充點(diǎn)狗糧比較好。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容