В моем приложении у меня есть подробный вид, где пользователь может редактировать атрибуты, например, человека, их имя, адрес и т. Д.Повторяемость аксессуаров UITableViewCell?
В двух ячейках, вместо того, чтобы выбирать их для редактирования их содержимого, они имеют право аксессуар, UISwitch, однако иногда его непоследовательность, но они копируются на другие ячейки в моем последнем разделе.
Я просматривал свой код десятками раз с тонкой расческой и не мог найти эту чертову причину. Что может вызвать это? Вот код, который я использую для создания UISwitch только на одной клетке:
if (indexPath.section == 0 && indexPath.row == 1)
{
cell.textLabel.text = @"Confirmed";
//Make the cell unselectable
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
//Create and add uiswitch
confirmedSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
[confirmedSwitch addTarget:self action:@selector(switchConfirmedStatus:) forControlEvents:UIControlEventValueChanged];
[confirmedSwitch setOn:[venue.isConfirmed boolValue]];
cell.accessoryView = confirmedSwitch;
}
Таким образом, вы ожидаете, чтобы показывать только на этой ячейке, см ничего странного с этим кодом? Я проверил мои операторы if, и все мои скобки checkbox indexPath верны.
Кто-нибудь видит это раньше или имеет какие-либо подсказки?
Звучит как проблема с повторным использованием камеры. Когда вы вызываете 'dequeueReusableCellWithIdentifier:' вы получаете переработанную ячейку - (вы, возможно, добавили переключатель в эту ячейку). Что вам нужно сделать, чтобы удалить добавленное представление, когда вы перерабатываете ячейку. –
Является ли этот код внутри cellForRowAtIndexPath? Используете ли вы один идентификатор ячейки многократного использования? Если да, что вы будете делать, если вы вернете кешированную ячейку, и она не соответствует вашему тегу раздела/строки? –
Ahh, я думаю, ключ в названии «Reuse»! Я использую это, поэтому просто поворачивая вспомогательный вид для ВСЕХ моих других ячеек, чтобы это исправить! Думаю, я слишком много думал, думал, что за этим может возникнуть большая проблема. –