天天看點

[IOS]關于設計TableView和TableViewCell之實際操作篇

因為時間原因,這裡隻是簡單叙述下實作自定義的TableView的過程.

第一步:既然要實作一個内容可變的動态表格,那麼内容肯定得有一個來源,這個内容來源建議最好以plist作為存儲,當plist檔案内容變化了之後,比如現在最常用的就是向伺服器通信,下載下傳下最新的内容然後更新至該plist檔案,相應地,表格内容也跟着變化了,是以在應用程式沙盒中固定一個plist檔案(可以在Document中也可以在caches中),接着在TableView對應的Contorller類中也定義一個變量(也可以定義成屬性類型)作為存儲plist檔案中的内容,在初始話過程中,将plist檔案的内容讀出來放入該變量.

第二步:在storyboard上設計單元格,比如自己添加imageView和TextLabView以及排版,排好之後,設定一個Identifier用于cell能複用.

第三步:建立自定義的UITableViewCell的子類,然後将第二步中涉及好的cell的Insepect的類改成該自定義類,然後将該cell上的一些subview全部關聯到該自定義類上供後續設計.

第四步:回到TableView的controller類中重寫(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法,其中便可根據該controller類中存放plist檔案内容的變量來重新配置每個單元格.大緻完成之後的代碼如下:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //假設在storyboard上定義的cell的identifier為"cellIdentifier",同時自定義的UITableViewCell子類名為MyUITableViewCel
	(MyUITableViewCel*) cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    //在此根據存儲plist檔案内容的變量plistContents配置cell
	.......
    return cell;
}
           

第五步:設定每個表格的高度,因為在storyboard上無法設計表格高度,是以需要通過tableVIewController的方法-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath來為每個Cell傳回高度(其實這個方法也不是UITableViewController的方法,而是因為他自動實作了代理UITableViewDelegate才得到的方法).

假設每行的高度固定,那麼這裡傳回一個固定值即可,如果每行的高度随每行内容變化而變化,可以參照下面這一片文檔來實作

http://www.cnblogs.com/kenshincui/p/3931948.html#uiTableViewCell