2015-03-28 2 views
19

Я пытался разгадать эту слишком распространенную проблему расширения UITextView внутри растущего UITableViewCellUITableView, и я почти там, за исключением одной маленькой вещи.UITableView beginUpdate/endUpdate вызывает прокрутку вверх

У меня есть UITableView, у которого есть обычай UITableViewCell. Мой UITableView использует новую динамическую высоту ячейки iOS8 с помощью self.tableView.estimatedRowHeight и self.tableView.rowHeight = UITableViewAutomaticDimension;, что увеличивает высоту ячейки, основываясь на ее автоматической компоновке.

я могу правильно вырастить свою «рамку с и моими UITableView» UITextField высота s клетка действительно растет, но каждый раз, когда я назвал self.tableView beginUpdates и соответствующий endUpdates, весь мой взгляд свитка Tableview заставляет свиток к верхней части табличный вид. У меня есть метод, который прокручивается до позиции каретки, но, как вы можете себе представить, каждый раз, когда в UITextView создается новая строка, UITableView прокручивается до самого верха, а затем в позицию каретки, и это чертовски чертовски.

У кого-нибудь есть идеи? При необходимости я могу предоставить видео. Cheers, Mike

+0

Возможный дубликат [JERKY прокруткой После обновления UITableViewCell в месте с UITableViewAutomaticDimension] (http://stackoverflow.com/questions/27996438/jerky-scrolling-after-updating-uitableviewcell-in-place-with-uitableviewautomati) – Emilio

ответ

23

Это тоже получилось, и похоже, что проблема self.tableView.estimatedRowHeight. Когда я сделал оценку достаточно большой, проблема прекратилась.

Я добавил это вместо того, чтобы и он работает хорошо до сих пор:

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return UITableViewAutomaticDimension; 
} 
+1

Что ваша настройка? Я сделал оцененный RowHeight супер большим и все еще показывал это поведение. Ваш образец кода, похоже, не работает для меня. – micnguyen

+0

Это работало для меня как шарм. Приобретено !!! – NSPratik

+7

Я использовал значение 1000, и он работал. Я опасаюсь использовать UITableViewAutomaticDimension, поскольку это, по-видимому, используется для указания через фактическое значение возвращаемой высоты строки (tableView.rowHeight или tableView: heightForRowAtIndexPath :), что система должна использовать оценочный RowHeight для определения размеров ячеек до того, как автозапуск имеет возможность размер. Кажется, что это может быть просто случайно в вашем случае. Значение -1 в отладчике, и это не работает для меня. –

5

Я не могу комментировать akiraspeirs ответ, но установка self.tableView.estimatedRowHeight точной высоты моей камеры , прежде чем любое изменение размера происходит избавилась странной прокрутки. Его второе решение не сработало в моем случае.

Смежные вопросы