我會爲每個條目類型創建自定義子類。創建像
-(void)configureCell:(Entry *)entry
{
//do configuration stuff here
}
然後在你的cellForRowAtIndexPath上叫東西每個細胞亞類的方法,這樣做:
Entry *entry = self.entryArray[indexPath.row];
UITableViewCell *cell;
switch(entry.entryType)
{
case EntryTypeOne:
CellTypeOne *cCell = (CellTypeOne *)[tableView dequeueReusableCellWithIdentifier:@"CellTypeOne" forIndexPath:indexPath
[cCell configureCell:entry];
cell = cCell;
break;
case EntryTypeTwo:
CellTypeTwo *cCell = (CellTypeTwo *)[tableView dequeueReusableCellWithIdentifier:@"CellTypeTwo" forIndexPath:indexPath
[cCell configureCell:entry];
cell = cCell;
break;
}
return cCell;
只是一些想法,我真的不知道你的代碼是如何設置或你如何區分不同類型的條目。
這聽起來不錯,喬納,你如何劃分自定義類的方式?例如我有一個按鈕,當用戶點擊時,將導致隱藏原始按鈕並取消隱藏不同的按鈕(選擇/取消選擇)。你會爲這些狀態中的每一個創建子類嗎? – x89a10
你可以,但沒有必要。您可以讓按鈕單擊在您的條目中切換BOOL值,名稱與doClick類似,然後在configureCell邏輯中根據didClick的狀態隱藏/顯示UI元素。只需點擊按鈕以及設置didClick屬性,只需確保重新加載表格數據即可。就我個人而言,我會創建單獨的子類。使邏輯更簡單。 – JonahGabriel
另一個小問題,就自定義單元格的操作而言,您會將它們定位到ViewController還是Cell並使用委派? – x89a10