У меня есть UITableView с ячейкой «добавить новый элемент» внизу. Когда пользователь набирает текстовое поле, появляется клавиатура, а в tableview появляется вставка содержимого, так что ее нижняя часть всегда находится над клавиатурой, а не скрывается под ней. Это уже работает почти отлично, но после появления клавиатуры табличное представление больше не прокручивается на дно, как и раньше, оно немного выше дна, так что нижняя ячейка частично покрыта клавиатурой.Настройка вставки содержимого делает UItableView немного прокручивается
Чтобы установить вставку содержимого, зарегистрироваться на уведомления клавиатуры и запустить этот код:
func adjustForKeyboard(notification: Notification) {
let userInfo = notification.userInfo!
let keyboardScreenEndFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let keyboardViewEndFrame = view.convert(keyboardScreenEndFrame, from: view.window)
if notification.name == Notification.Name.UIKeyboardWillHide {
tableView.contentInset = UIEdgeInsets.zero
} else {
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardViewEndFrame.height, right: 0)
}
tableView.scrollIndicatorInsets = tableView.contentInset
}
Здесь также некоторые скриншоты: