Отмена выбора строки в табличном представлении не приводит к анимации - PullRequest
1 голос
/ 07 июля 2011

У меня есть контроллер представления, который управляет представлением таблицы.Насколько я понимаю, ячейка таблицы будет автоматически отменена, если я нажму другой viewcontroller, а затем вернусь к представлению таблицы.

Однако в том же классе (который я использую несколько раз) есть один экземпляркласса, когда ячейка не выбрана, но не анимирована (она просто станет синей, а затем вернется в нормальное состояние без анимации).Почему это случилось?У меня есть несколько экземпляров этого класса, но это происходит только с одним из них.Что может быть причиной этого?

Ответы [ 3 ]

2 голосов
/ 07 июля 2011

Судя по моему опыту, ячейки не отменяются автоматически, если вы нажимаете / извлекаете контроллер представления (по крайней мере, не при использовании контроллера навигации), если только вы не добавили некоторый код, чтобы отменить его выбор!Это также может быть автоматически отменено, если вы выполняете [tableView reloadData] в viewWill / DidAppear (или в процессе, запущенном этими методами).

Вы пытались добавить что-то подобное в viewDidAppear?

NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES]
}
2 голосов
/ 15 июля 2011
    NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES]
}
  1. это вы должны написать в методе didselectRowAtIndexPath
0 голосов
/ 07 июля 2011

Вы можете перезагрузить Tableview снова.

По вашему мнениюWillAppear

[yourTableView reloadData];

Или, если вы не хотите беспокоить ваш источник данных, попробуйте это

NSArray *array = [yourTableView visibleCells];
for(UITableViewCell *cell in array)
{
    cell.selected = NO;
}
...