2010-10-29 57 views
0

我創建使用網頁中列出的方法自定義UITableViewCells:在一個NIB中的幾個自定義UITableViewCells - 如何在代碼中引用?

http://icodeblog.com/2009/05/24/custom-uitableviewcell-using-interface-builder/

所以我的cellForRowAtIndexPath代碼看起來有點像這樣:

static NSString *CellIdentifier = @"CustomCell"; 
TableCellWithLogo *cell = (TableCellWithLogo *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"TableCells" owner:nil options:nil]; 
    for (id currentObject in nibObjects) 
    { 
     if ([currentObject isKindOfClass:[TableCellWithLogo class]]) 
     { 
      cell = (TableCellWithLogo *)currentObject; 
     } 
    } 
} 
cell.customTextLabel.text = [tableArray objectAtIndex:indexPath.row]; 
return cell; 

現在,表我創建看起來像分組式tableview樣式的風格化版本,帶有陰影等。因此,它需要四種可能的表格樣式(頂部,中央,底部和頂部+底部,因爲只有一個單元顯示時)。

我在解決如何將所有這些表格單元放入一個筆尖然後引用它們時遇到問題。目前,我有一個UITableViewCell,它的類是'TableCellWithLogo'。這門課有所有相關的IBOutlets。如果我把幾個UITableViewCells放在nib中(TableCellWithLogo類的所有類),我怎麼能夠在代碼中區分它們呢?你可以看到的例子上面我找到了這個類:

if ([currentObject isKindOfClass:[TableCellWithLogo class]])

..但所有的類將是相同的,所以我不知道如何區分?

回答

1

創建一個空的筆尖並向其添加表格視圖單元格。此外,他們每個人創建一個相應的類,併爲他們每個人分配相關的類(見屏幕截圖)。 alt text

然後,在你的cellForRowAtIndexPath將需要創建一個基於indexPath.row

+0

由於不同的細胞。我認爲你誤解了我的問題,或者我沒有讓自己清楚。所有的單元格都有相同的IBOutlets,所以我希望他們使用同一個類。我已經解決了這個問題,通過更改每個單元格的IB標籤,然後引用它們:if([(TableCellWithLogo *)currentObject tag] == 1)cell =(TableCellWithLogo *)currentObject;'等等 – cannyboy 2010-10-29 22:11:21

+0

哦,對於那個很抱歉。很高興聽到你找到了方法。 – 2010-10-29 22:23:47

相關問題