У меня есть UITableViewCell
, который расширяется и добавляет метку при нажатии.
Логика:
Я добавил метку в
cellForRowAtIndexPath
к выбранной ячейке, а вdidSelectRow...
перезагрузил tableView. ВheightForRow...
выбранная ячейка расширяется. Надеюсь, вы получите картину.
В didSelectRow...
мне приходится перезагружать данные, а не начинать/заканчивать обновление. Что я хочу сделать, так это перезагрузить данные и анимировать их. Я могу сделать так:
[UIView transitionWithView: tableView
duration: 0.40f
options: UIViewAnimationOptionTransitionCrossDissolve
animations: ^(void)
{
[self.tableView reloadData];
}
completion: nil
}];
Таким образом, происходит перекрестное растворение клеток, которые меняются. То, что я хочу, это UITableViewRowAnimationTop
, но, видимо, это невозможно в параметрах перехода. Есть ли способ reloadData
и использовать UITableViewRowAnimationTop
?
reloadData
уничтожает все ячейки, находящиеся в настоящее время в представлении таблицы, и восстанавливает все с нуля. Возможно, вы ищете другой метод, если это не то поведение, которое вам нужно. - person Ian MacDonald   schedule 05.02.2015UITableViewRowAnimationTop
с reloadData? - person   schedule 05.02.2015tableView.beginUpdates(); tableView.endUpdates()
и ячейки будут расширяться по мере необходимости, чтобы соответствовать их текущему содержимому. Никаких перезагрузок не требуется (если не изменился действительный набор путей к индексу таблицы). Вы можете найти более подробную информацию о подходе к этому здесь. - person Benjohn   schedule 23.11.2017