2015年12月15日 星期二

[Swift] 利用xib來客製化UITableViewCell

有些時候,我們可能希望Cell可以給多個TableView共用,這時你就可以將Cell獨立出來。

在這邊說明一下如何達到這個效果,首先先開啟一個新的專案。


新增一個User Interface,並選擇Empty,並命名為CustomTableCell




















此時你會得到一個空的xib,在右下角選擇Table View Cell,並將它拉入畫面中









將這個Cell的高度設定為300,並拉入兩個元件,UIImageView與UILabel,將你的Cell拉成這個樣子。




















接著,在新增一個Cocoa Touch Class,命名為CustomTableCell並繼承UITableViewCell



接著,選回CustomTableCell.xib,將Custom Class的Class設定為CustomTableCell



























將剛才新增的兩個元件,加入IBOutlet


回到Main.storyboard,加入UItableView與Cell


針對這個Cell做三件事

1. 將Custom Class 改為 CustomTableCell

2.將Identifier命名為 Cell

3.將此Cell高度設為300


接著,將此UItableView設定IBOutlet













跟使用一般UITableView一樣,必須實作UITableViewDataSource與UITableViewDelegate兩個protocol。

不過要注意的一點是,在viewDidLoad時,必須要註冊你的xib,這樣才能讓它們關聯起來




forCellReuseIdentifier要填入上面你所命名的Cell Identifier


















接著我們先將圖片加入專案之中
















這裡放了三張圖,我們假設顯示三筆資料,分別是三個國家圖,與名稱。

最後要實作UITableViewDataSource的兩個事件。

完整的程式碼如下


最後你會得到這樣的結果