У меня есть статический контроллер табличного представления, в котором одна ячейка является контейнерным представлением, которое имеет другое табличное представление, которое является динамическим. Внутренний табличный вид имеет текстовое поле, и при нажатии появляется клавиатура. В главном (внешнем) контроллере табличного представления у меня есть функция ниже, чтобы обновить ограничение на показ клавиатуры.
func updateConstraints() {
let bottom: CGFloat = 0
if let popup = self.addItemPopupView {
self.popupBottomContraints?.isActive = false
if self.isKeyboardActive {
self.popupBottomContraints = popup.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor,
constant: -self.keyboardHeight+bottom)
} else {
self.popupBottomContraints = popup.bottomAnchor.constraint(equalTo: self.toolbar.topAnchor, constant: bottom)
}
self.popupBottomContraints?.isActive = true
}
}
Но проблема в том, что на дисплее клавиатуры внутренний вид таблицы переходит на верхнюю часть внутривид контейнера, в то время как сам контроллер основного вида перемещается наверх. Как не дать внутреннему виду таблицы вообще не двигаться? Я отключил прокрутку, отскок для представления таблицы, но это все еще происходит.
Динамическая высота ячейки внешней таблицы установлена на высоту содержимого внутреннего представления таблицы, поэтому прокрутка не требуется.
Смотрите видео