Может ли кто-нибудь объяснить, почему UIControlEventValueChanged запускается, когда UISwitch включен в ячейке tableview, но нет, если он выключен во время прокрутки?UIControlEventValueChanged для UISwitch в UITableViewCell, стрельба при просмотре свитков
У меня есть еще 100 строк в виде таблицы с данными, которые вытаскиваются из данных ядра, когда UISwitch выключен. UIControlEventValueChanged не запускается, но если я переключу переключатель в положение ON, когда он переключится (строка таблицы) срабатывает UIControlEventValueChanged.
Я использую следующие для конфигурации ячейки
[customCell.seenSwitch addTarget:self action:@selector(seenSwitchChanged:) forControlEvents:UIControlEventValueChanged];
Метод seenSwitchChanged, изменяет значение BOOL в основных данных, чтобы соответствовать состояние переключателя.
При прокрутке по экрану стола оно заикается и задерживается при запуске UIControlEventValueChanged. Я предполагаю, потому что tableview ищет данные из CoreData и seeSwitchChanged также пытается получить доступ к CoreData
Если я прокомментирую вышеприведенную строку, табличное представление плавно прокручивается.
Надеюсь, что объяснения достаточно ясны.
Большое спасибо
Matt
EDIT
-(void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
ECCustomCell *customCell = (ECCustomCell *)cell;
ECPerson *person = [self.fetchedResultsController objectAtIndexPath:indexPath];
customCell.name.text = [person valueForKey:@"name"];
customCell.seenSwitch.on = [[person valueForKey:@"seen"] boolValue];
[customCell.seenSwitch addTarget:self action:@selector(seenSwitchChanged:) forControlEvents:UIControlEventValueChanged];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"customCell"];
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
Вы можете показать свой 'Tableview: cellForRowAtIndexPath:' реализации –
@ Paul.s добавил реализации на почту. Спасибо –
Где твои ячейки на самом деле созданы Я не вижу его в коде, который вы отправили –