iOS отправляет 2 уведомления, когда клавиатура будет отображать / скрывать
UIKeyboardWillShow
UIKeyboardWillHide
Что вы можете сделать, это наблюдать за этими уведомлениями и перемещать фрейм стека, например
@objc func keyboardWillShow() {
if stackView.frame.origin.y == 0 {
stackView.frame.origin.y -= 200
}
}
@objc func keyboardWillHide() {
if stackView.frame.origin.y != 0 {
stackView.frame.origin.y = 0
}
}
А вот как соблюдать эти уведомления. (используйте этот код в вашей функции viewDidLoad)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: Notification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: Notification.Name.UIKeyboardWillHide, object: nil)