Это процесс скольжения экрана, когда появляется клавиатура, но этот процесс описывается многими контроллерами.Обработка в if и else изменяется в зависимости от каждого контроллера.Есть ли способ, чтобы чисто поделиться этим?Кроме того, где и как мы должны обобщать?
func keyboardWillChangeFrame(_ notification: Notification) {
if let endFrame = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
var keyboardHeight = UIScreen.main.bounds.height - endFrame.origin.y
if #available(iOS 11, *) {
if keyboardHeight > 0 {
view.addGestureRecognizer(ui.viewTapGesture)
ui.isHiddenSubmitBtn(false)
ui.isHiddenTextCount(false)
keyboardHeight = keyboardHeight - view.safeAreaInsets.bottom + ui.submitBtn.frame.height + 8
} else {
view.removeGestureRecognizer(ui.viewTapGesture)
ui.isHiddenSubmitBtn(true)
ui.isHiddenTextCount(true)
}
}
ui.textViewBottomConstraint.constant = -keyboardHeight - 8
view.layoutIfNeeded()
}
}