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)

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