2010-10-09 46 views
2

我試圖擺脫緩存的UITableView單元格。我有兩個部分。第二部分的第一個單元與第一部分的第一個單元具有相同的「外觀」。外觀我的意思是細胞高度(多線細胞)。在同一個表視圖上使用兩個不同的單元格標識符

我試圖使用不同的標識符,但沒有奏效。下面是代碼:

NSString *identifier; 
if (thisViewMode) { 
    identifier = @"thisViewMode"; 
} else if ((indexPath.section == 1) && thatViewMode) { 
    identifier = @"thatViewMode"; 
} else { 
    identifier = @"CellIdentifier"; 
} 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 
if (cell == nil) { 
    cell = [self CreateMultilinesCell:identifier]; 
} 

thatViewMode只調用一次,這是不正確的,因爲我有我的第二部分更多的細胞。如果我更改第一部分中第一個單元格的內容,那麼第二部分中第一個單元格的高度也會發生變化。通常每個細胞應該有它自己的細胞高度,但這不是這種情況。

是否有一個問題,我不能在同一個表視圖上使用不同的單元格標識符?

+0

我沒有看到您的代碼有任何問題。你能做一個屏幕嗎? – Vinzius 2010-10-09 18:52:16

+0

CreateMultilinesCell中會發生什麼?如果它從xib加載,你也在那裏指定一個單元標識符 - 會導致問題嗎? – deanWombourne 2010-10-09 19:27:39

+0

沒有xib。謝謝你的幫助。我想通了:我忘了也適應'heightForRowAtIndexPath:'。 – testing 2010-10-09 19:30:29

回答

0

我忘了也適應了heightForRowAtIndexPath,這樣我就區分了部分。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (indexPath.section == 1) { 
     // do something 
    } else { 
     // do something different 
    } 
    return ... 
} 
相關問題