天天看點

代碼實作UITableViewCell表視圖單元定制

   通常情況下我們會希望單元格UITableViewCell顯示自定義不同資料,一般有兩種方法,一種是通過代碼給UITableViewCell在添加子視圖,另一個就是用nib檔案加載子視圖;

本文是在iPhone4與iPad開發基礎教程上的一個執行個體,因為純代碼編寫和書上Xcode版本過老的問題,代碼和書上有些細微不同,筆者為什麼還寫出來呢,因為在寫的時候種種細節都是影響視圖不能正确顯示的原因,雖然是看着書上代碼敲得的,運作和沒有一個錯誤警告但是就是不能正确顯示出來,我想大部分初學者和我一樣的感受,以此文告誡自己:做一個細心的人;

1.建立工程名為TableViewCell , File->New->Project ->single View Application -> next

2.添加協定

并在.m檔案的@implementation TVCViewController後面添加

@synthesize tableView = _tableView;

@synthesize tableViewCell = _tableViewCell;

@synthesize computers = _computers;

3.表視圖的初始化

_computers=array等價于self.computers = array;

4.委托方法

本段代碼實作的是在表視圖單元内添加了4個UILabel,兩個靜态,兩個動态;動态的用于顯示儲存在字典數組中的資料;

對這行代碼[cell.contentView addSubview:nameLabel];有些疑問,然後查了一下contentView的定義,在UITableViewCell中這樣定義,

書上這樣解釋:表視圖單元已經有了一個名為contentView的UIView子視圖,用于對他的所有子視圖驚喜分組,,是以我們再添加标簽的時候,不用把标簽作為子視圖直接添加到表視圖單元中,而是添加到contentView上;

在.h檔案中我們看見了兩個宏定義,然後在這段的代碼中将宏定義的值賦給了兩個label的tag,label的tag屬性相當于标記的符号,設定其他的整形數值都可以,就相當于學生的學号作用,通過label的tag屬性同樣能對label進行相關屬性修改操作;

5.運作結果截圖

5.運作結果截一張圖就夠了,為什麼我截圖截了兩張,此處我想說說一下,單元格的重用問題;

藍色部分表示的是被我選中的部分,但是藍色下面的的單元格不能被選中,為什麼,因為它并沒有被建立,意思就是它的上面并沒有UITableViewCell視圖;

     本文轉自新風作浪 51CTO部落格,原文連結:http://blog.51cto.com/duxinfeng/1208743,如需轉載請自行聯系原作者

繼續閱讀