在同一表视图上使用两个不同的单元标识符

时间:2010-10-09 18:43:12

标签: iphone objective-c cocoa-touch uitableview

我正在尝试摆脱缓存的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只被调用一次,这是不正确的,因为我的第二部分中有更多的单元格。如果我更改第一部分中第一个单元格的内容,第二部分中第一个单元格的高度也会发生变化。通常情况下,每个单元格都应该有自己的单元格高度,但这不是这种情况。

是否存在无法在同一表视图中使用不同单元标识符的问题?

1 个答案:

答案 0 :(得分:0)

我忘了也适应heightForRowAtIndexPath,以便区分各个部分。

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