我希望上下拖动键盘时,每个点都会调用keyboardWillChangeFrame。我正在使用keyboardDismissMode = .interactive。
相反,仅在完全打开或关闭键盘时才调用keyboardWillChangeFrame。
是否有其他方法可以获得我想要的效果?
答案 0 :(得分:0)
使用此仓库添加交互式平移非常容易:
https://github.com/totocaster/Typist
答案 1 :(得分:0)
我正在使用此代码来获取每次更改结束时键盘的准确帧,因此,如果将键盘更改为英语或表情符号,则每次都会给出正确的帧。
func keyboardWillChangeFrame(notification: NSNotification) {
if let keyboardFrame = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
let keyboardHeight = keyboardFrame.size.height
print("keyboard height: \(keyboardHeight)")
self.bottomConstrainttypeTextView.constant = -keyboardHeight
self.view.layoutIfNeeded()
}
}
这是如何使用它的方法,只需添加观察者以通知键盘更改触发器
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillChangeFrame(notification:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)