Я пытаюсь сместить текстовое поле, расположенное в нижней части таблицы (фактически, в виде нижнего колонтитула). Так что я попробовал два метода:Сдвиньте табличное представление при появлении клавиатуры
- анимировать autolayout Constraint
- содержание Animate Вставки в Tableview
Тем не менее, не из них работал, или частично работал. В настоящее время я не в состоянии проверить это на реальном IPad (приложение только IPad), и я тестирование на симуляторе, но я думал, что-то, как это должно работать:
Анимирование contentInsets
func keyboardWillShow(notification: NSNotification) { if let keyboardHeight = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.height { UIView.animate(withDuration: 0.2, animations: { self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardHeight, 0) }) } } func keyboardWillHide(notification: NSNotification) { UIView.animate(withDuration: 0.2, animations: { self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0) }) }
оживляющий autolayout ограничений
Таким образом, в первом примере, я никогда не замечал animati on, или перемещение содержимого таблицы. Во втором примере я сделал выход ограничения автоопределения (нижнее вертикальное расстояние), но получаю некоторые нечетные результаты. например, tableview движется вверх, но не полностью, и только в первый раз.
Если я установил точку останова, keyboardHeight
равен 471
. Я упускаю что-то очевидное?
Используйте [IQKeyboardManager] (https://github.com/hackiftekhar/IQKeyboardManager#installation- с-cocoapod-) – pkc456
@ pkc456 Извините, для меня нет третьей стороны. – Whirlwind
Почему вы не можете проверить на симуляторе? – Devster101