У меня проблема, и я бродил, если кто-то уже испытывал это раньше.
У меня есть следующие настройки:
- Я использую UIViewController, который состоит из 3 элементов
- UIView наверху
- UITableView в центре
- UiView внизу
Я делаю следующее:
Я анимирую нижний UIView, чтобы он поднимался после того, как клавиатура была показана. Это работает нормально, но проблема, с которой я столкнулся, заключается в том, что после исчезновения клавиатуры заголовок раздела первой ячейки в табличном представлении немного перемещается с движением анимации.
extension UserDetailsViewController: KeyboardDelegate {
func keyboardWillShow(notification: NSNotification) {
if let info = notification.userInfo {
let keyboardFrame = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
UIView.animate(withDuration: 0.3, animations: {
if UserDeviceType.IPad || UserDeviceType.IPadPro {
self.updateConstraints(gradientHeight: 90, footerHeight: 60, footerBottom: keyboardFrame.height)
} else if UserDeviceType.IPhone5 || UserDeviceType.IPhone4 {
self.updateConstraints(gradientHeight: 65, footerHeight: 40, footerBottom: keyboardFrame.height)
} else if UserDeviceType.IPhoneX {
self.updateConstraints(gradientHeight: 90, footerHeight: 60, footerBottom: keyboardFrame.height)
} else {
self.updateConstraints(gradientHeight: 67, footerHeight: 40, footerBottom: keyboardFrame.height)
}
self.view.layoutIfNeeded()
self.tableView.layoutIfNeeded()
})
}
}
func keyboardWillHide(notification: NSNotification) {
UIView.animate(withDuration: 0.3, animations: {
self.setupConstraints()
self.view.layoutIfNeeded()
self.tableView.layoutIfNeeded()
})
}
}
Клавиатура отображается правильно
после анимации клавиатуры