UITableView beginUpdate/endUpdate вызывает прокрутку вверх
Я пытаюсь разобраться с этой слишком распространенной проблемой расширения UITextView
внутри растущего UITableViewCell
UITableView
, и я почти там, за исключением одной маленькой вещи.
У меня есть UITableView
, у которого есть пользовательский UITableViewCell
. Мой UITableView
использует новую динамическую высоту ячейки iOS8 с помощью self.tableView.estimatedRowHeight
и self.tableView.rowHeight = UITableViewAutomaticDimension;
, которая увеличивает высоту ячейки на основе ее автоматического макета.
Я могу правильно вырастить кадр UITextField
, а высота ячеек UITableView
действительно растет, но каждый раз, когда я вызывал self.tableView beginUpdates
и соответствующий endUpdates
, вся моя прокрутка в представлении tableView заставляет прокручивать верх таблицы. У меня есть метод, который прокручивается до позиции каретки, но, как вы можете себе представить, каждый раз, когда создается новая строка в UITextView, UITableView прокручивается до самого верха, а затем до позиции каретки, и это чертовски чертовски.
У кого-нибудь есть идеи? При необходимости я могу предоставить видео. Ура,
Mike
Ответы
Ответ 1
Мне тоже понравилось, и похоже, что проблема self.tableView.estimatedRowHeight
. Когда я сделал оценку достаточно большой, проблема прекратилась.
Я добавил это вместо этого, и он хорошо работает до сих пор:
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
Ответ 2
Я не могу прокомментировать ответ akiraspeirs, но установив self.tableView.estimatedRowHeight
на точную высоту моей ячейки до, любое изменение размера произойдет избавился от странной прокрутки. Его второе решение не сработало в моем случае.