天天看點

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

一、實作效果

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

二、使用純代碼自定義一個tableview的步驟

1.建立一個繼承自uitableviewcell的類

2.重寫initwithstyle:reuseidentifier:方法

添加所有需要顯示的子控件(不需要設定子控件的資料和frame, 子控件要添加到contentview中)

進行子控件一次性的屬性設定(有些屬性隻需要設定一次, 比如字型\固定的圖檔)

3.提供2個模型

資料模型: 存放文字資料\圖檔資料

frame模型: 存放資料模型\所有子控件的frame\cell的高度

4.cell擁有一個frame模型(不要直接擁有資料模型)

5.重寫frame模型屬性的setter方法: 在這個方法中設定子控件的顯示資料和frame

6.frame模型資料的初始化已經采取懶加載的方式(每一個cell對應的frame模型資料隻加載一次)

三、檔案結構和實作代碼

1.檔案結構

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

2.實作代碼:

njweibo.h檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

njweibo.m檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

njweibocell.h檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

njweibocell.m檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

njweiboframe.h檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

njweiboframe.m檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

主要制器

njviewcontroller.m檔案

ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局
ios開發UI篇—使用純代碼自定義UItableviewcell實作一個簡單的微網誌界面布局

四、補充說明

由于系統提供的tableview可能并不能滿足我們的開發需求,是以經常要求我們能夠自定義tableview。

自定義tableview有兩種方式,一種是使用xib建立,一種是使用純代碼的方式建立。

對于樣式一樣的tableview,通常使用xib進行建立,對于高度不一樣,内容也不完全一緻的通常使用純代碼進行自定義。