Поскольку UITableView
«s обычно многократно экземпляры UITableViewCell
-х, вы должны обеспечить ваш '-tableView:cellForRowAtIndexPath:
метод правильно устанавливает все атрибуты ячейки. Остальные устаревшие данные могут сохраняться. Я предполагаю, что это может быть вашей проблемой, не имея полного взгляда на ваш код.
Так, что-то вроде этого:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString* cellIdentifier = @"TheCellIdentifier";
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
ShoppingObject* shopping = [self.myShoppingList objectAtIndex:indexPath.row];
UIImageView* accessoryView = nil;
if (shopping.isDone) {
accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tick_btn"]];
}
cell.accessoryView = accessoryView;
return cell;
}
Он получает ячейку, либо из кэша повторного использования или создания нового. Затем он проверяет состояние вашей модели данных, чтобы убедиться, что если совершение покупок или нет для объекта, представленного в этой строке, и если совершение покупок завершено, вы получите свое изображение. Обратите внимание, что совершение покупок не выполняется, нет созданного аксессуарного вида, поэтому, независимо от того, какое состояние объекта ShoppingObject будет представлено в этой строке таблицы, аксессуар для этой ячейки будет установлен правильно.
Так что, что я, вероятно, тогда сделал бы в вашем -tableView:didSelectRowAtIndexPath:
, было бы просто -reloadData
на столе, чтобы обеспечить правильное обновление.
пожалуйста показать ур код – manujmv
'- (Недействительными) Tableview: (UITableView *) Tableview didSelectRowAtIndexPath: (NSIndexPath *) indexPath {cell = [tableView cellForRowAtIndexPath: indexPath]; , если (cell.accessoryView == ноль) { cell.accessoryView = [[UIImageView Alloc] initWithImage: [UIImage imageNamed: @ "tick_btn"]]; } прочее { cell.accessoryView = nil; } } ' – JgdGuy