【发布时间】:2018-08-20 10:31:57
【问题描述】:
我尝试实现一个通知,提醒视图键盘将出现并且应该随着键盘高度向上移动。
func subscribeToKeyboardNotifications() {
NotificationCenter.default.addObserver(self, selector: #selector(KeyboardWillShow(_:)), name: .UIKeyboardWillShow, object: nil)
}
这是 KeyboardWillShow 方法体:
@objc func KeyboardWillShow(_ notification: Notification) {
view.frame.origin.y -= getKeyBoardHeight(notification)
}
和 getKeyBoardHeight 函数:
func getKeyBoardHeight(_ notification: Notification) -> CGFloat {
let userinfo = notification.userInfo
let keyboardsize = userinfo![UIKeyboardFrameEndUserInfoKey] as! NSValue
return keyboardsize.cgRectValue.height
}
当我在模拟器中打开键盘时,为什么我的应用会完全移出视线?
【问题讨论】:
-
KeyboardWillShow 方法中的
view是什么? -
不要移动所有视图,只移动键盘覆盖的子视图。
-
view.frame.origin.y -= getKeyBoardHeight(notification)正在向下移动您的视图。改用+=:) 正 = 上/右 |负数 = 向下/向左 -
并将更改重置为
keyboardWillHide方法。