Что касается идентификаторов ячеек UITableViewCell iPhone - PullRequest
0 голосов
/ 21 ноября 2011

У меня динамическое табличное представление, содержащее 7 различных разделов. Я использую разные идентификаторы ячеек для каждого из разделов, а именно: идентификатор 10 для 1-го раздела, 20 для 2-го, 30 для 3-го и т. Д. (70 для 7-го). Код для этого:

static NSString *CellIdentifier;
UITableViewCell *cell=nil;
CellIdentifier = [NSString stringWithFormat:@"%@%d%d",@"Cell",indexPath.section,indexPath.row];
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

Раздел 7 (CellIdentifier 60) содержит кнопку «плюс», и при нажатии на эту кнопку «плюс» будет создан новый раздел между разделами 6 и 7, то есть количество разделов будет увеличено на 1, а 7-й раздел станет 8-й раздел (CellIdentifier 70). Новый раздел вставляется как раздел 7-й (CellIdentifier 60) с использованием метода insertSections объекта UITableView, и этот новый раздел будет содержать кнопку удаления (вместо кнопки «плюс»). Теперь, если я удаляю этот раздел (нажав кнопку «Удалить», используется метод deleteSections of UITableView), то 7-й раздел удаляется, а 8-й становится 7-м (CellIdentifier снова становится 60) (ранее это был только 7-й). Теперь проблема возникает. Если я прокручиваю табличное представление, то раздел, который я удалил, вновь появляется с перекрытием раздела, содержащего кнопку «плюс» (оба имели CellIdentifier 60 в какой-то момент времени). Есть ли у кого-нибудь решение для этого ?? пожалуйста, помогите мне.

1 Ответ

1 голос
/ 21 ноября 2011

Вы должны использовать уникальный идентификатор для каждого раздела.Они не могут перекрываться - даже в разное время.Ячейки с любым определенным CellIdentifier повторно используются снова и снова.

Просто убедитесь, что ваш часто появляющийся и исчезающий раздел имеет абсолютно уникальный идентификатор ячейки, и с вами все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...