UITableView в iOS 7 не прокручивается до правильного местоположения при редактировании UITextView в ячейке

У меня есть табличное представление со статическими ячейками. Одна ячейка содержитUITextView иheightForRowAtIndexPath: рассчитывается динамически, так что ячейка всегда достаточно высока, чтобы вместить текст (эта часть потребовала некоторой работы под iOS 7, на самом деле, так какбольше нельзя просто спросить у textView егоcontentSize).

Когда я нажимаю в текстовом представлении, чтобы начать редактирование, клавиатура анимируется на место, contentInsets в tableView автоматически настраиваются для учета этого (т. Е. Нижняя вставка 216px для портретной ориентации iPhone), курсор / каретка становится видимой, и тогда табличное представлениепрокручивает в другое место, Это в конечном итоге выглядит как отказов.

Вот'видео этого в симуляторе:https://www.dropbox.com/s/htdbb0t7985u6n4/textview-bounce.mov

Обратите внимание, что на секунду каретка находится чуть выше клавиатуры. Я'я регистрировал табличное представлениеcontentOffset и я вижу, как это прокручивается до хорошего значения, а затем внезапноповернись" и прокрутите назад.

Как ни странно, если я включаю медленную анимацию в симуляторе, проблема исчезает;contentOffset разворот не делаетэто происходит, и все работает, как я ожидаю (то есть поведение iOS 6).

Вот'Видео с медленной анимацией:https://www.dropbox.com/s/nhn7vspx86t4exb/textview-nobounce.mov

Замечания по реализации:

Текстовое представление имеет розовый цвет и имеет ограничения AutoLayout, которые держат его прикрепленным к ячейке на расстоянии 0 (кроме левой стороны, которая составляет 10 точек).м используюboundingRectWithSize: рассчитать высоту представления таблицы, корректируя lineFragmentPadding и любые верхние / нижние вставки. Кажется, работает.Я установил textView, чтобы не быть прокручиваемым, но нене замечаю ничего другого, когдаscrollEnabled == ДАЭто контроллер табличного представления иautomaticallyAdjustsScrollViewInsets == ДА

Ответы на вопрос(1)

Ваш ответ на вопрос