Может кто-нибудь объяснить, почему UIControlEventValueChanged срабатывает, когда UISwitch включен в ячейке табличного представления, но не, если он выключен во время прокрутки?
У меня есть 100+ строк в табличном представлении с данными, извлекаемыми из Core Data, когда UISwitch выключен, UIControlEventValueChanged не запускается, но если я переключаю переключатель в положение ON, когда переключатель (строка таблицы) появляется, он запускает UIControlEventValueChanged.
Я использую следующее для конфигурации ячейки
[customCell.seenSwitch addTarget:self action:@selector(seenSwitchChanged:) forControlEvents:UIControlEventValueChanged];
Метод seenSwitchChanged изменяет значение BOOL в Core Data для соответствия состоянию коммутатора.
При быстрой прокрутке табличного представления он заикается и лагает при срабатывании UIControlEventValueChanged.Я предполагаю, потому что табличное представление ищет данные из CoreData, а seenSwitchChanged также пытается получить доступ к CoreData
Если я закомментирую вышеприведенную строку, табличное представление плавно прокручивается.
Надеюсь, что объяснение понятнодовольно.
Большое спасибо
Мэтт
РЕДАКТИРОВАТЬ
-(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;
}