Используйте два разных идентификатора ячейки в одном табличном представлении - PullRequest
2 голосов
/ 09 октября 2010

Я пытаюсь избавиться от кэшированной ячейки 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 голосов
/ 09 октября 2010

Я также забыл адаптировать heightForRowAtIndexPath, чтобы сделать различие между разделами.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 1) {
        // do something
    } else {
        // do something different
    }
    return ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...