標籤:
系統預設的UITableViewCell的每行都有橫線(分隔字元),就算沒有資料也是如此,有時候我們想只在有資料的地方有底線,可以去除底線,然後在awarkFromNid方法中使用addsubview的方法加入底線到UITableViewCell的contentView中。但有些時候我們還要自訂其他類型的Cell。
自訂cell有兩種方法,一種是通過xid自訂控制項,一種是通過代碼自訂cell。
通過xid自訂cell的步驟:
- 建立一個xib檔案描述一個view的內部結構(假設叫做MJTgCell.xib)
- 建立一個自訂的類
(自訂類需要繼承自系統內建的view, 繼承自哪個類, 取決於xib根對象的Class)
- 建立類的類名最好跟xib的檔案名稱保持一致(比如類名就叫做MJTgCell)
- 將xib中的控制項和自訂類的.m檔案進行連線
- 提供一個類方法返回一個建立好的自訂view(屏蔽從xib載入的過程)
- 提供一個模型屬性讓外界傳遞模型資料
- 重寫模型屬性的setter方法,在這裡將模型資料展示到對應的子控制項上面
通過代碼自訂cell步驟:
1.建立一個繼承自UITableViewCell的類
2.重寫- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier
:(NSString *)reuseIdentifier方法:
- Ø 添加所有需要顯示的子控制項(不需要設定子控制項的資料和frame, 子控制項要添加到contentView中)
- Ø 進行子控制項一次性的屬性設定(有些屬性只需要設定一次, 比如字型\固定的圖片)
3.提供2個模型
- Ø 資料模型: 存放文字資料\圖片資料
- Ø frame模型: 存放資料模型\所有子控制項的frame\cell的高度
4.cell擁有一個frame模型(不要直接擁有資料模型)
5.重寫frame模型屬性的setter方法: 在這個方法中設定子控制項的顯示資料和frame
6.frame模型資料的初始化已經採取懶載入的方式(每一個cell對應的frame模型資料只載入一次)
iOS開發之自訂UITableView的cell