Я пытаюсь переместить изображение вверх, когда клавиатура появляется, и обратно, когда клавиатура скрыта.
У меня проблема в том, что высоты кажутся разными: KBH1 выводит 216, а KBH2 выводит 260.
Это приводит к тому, что представление перемещается вниз дальше, чем оно было первоначально перемещено.
Как бы я исправить это?
extension UIViewController {
func addKeyboardFunctions() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboardEx))
// tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillDisappear), name: Notification.Name.UIKeyboardWillHide, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillAppear), name: Notification.Name.UIKeyboardWillShow, object: nil)
}
@objc func keyboardWillAppear(_ notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
print("KBH: \(keyboardSize.height)")
}
}
}
@objc func keyboardWillDisappear(_ notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
print("KBH: \(keyboardSize.height)")
}
}
}