Проблема с deselectRowAtIndexPath в tableView
У меня есть ячейка с несколькими строками текста, которая меняет цвет при выборе/подсвечивании. Проблема в том, что по мере того, как новый viewController толкается, происходит анимация отмены выделения, которая визуально отвлекает, когда текст внезапно возвращается в невыбранное состояние. Я переместил инструкцию deselectRowAtIndexPath после строки, в которую был нажат новый контроллер представления, но это не имеет никакого эффекта.
Как я могу запретить пользователю видеть отмена выбора ячейки (без реализации таймера)? Любая помощь будет оценена пожалуйста.
Ответы
Ответ 1
Я думаю, что общая парадигма, используемая с представлениями таблиц и нажатием новых VC, заключается в том, что вы отмените выбор строки таблицы в методе viewWillAppear:animated
. Затем, когда VC выскочил, они видят, какая строка использовалась для перехода к этому VC.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.myTableView deselectRowAtIndexPath:[myTableView indexPathForSelectedRow] animated:YES];
}
удалите deselectRow из вашего метода didSelectRowAtIndexPath
.
Ответ 2
Если вы используете UITableViewController
, вам не нужно вызывать deselectRowAtIndexPath:
. Это будет сделано для вас автоматически, когда ваш вид таблицы станет видимым снова.
Если вы не используете UITableViewController
, потому что у вас более сложный интерфейс, вам нужно будет вызвать deselectRowAtIndexPath:
вручную из метода viewWillAppear:animated:
.