Ios 拖动时键盘高度等于0
我使用的是Ios 拖动时键盘高度等于0,ios,swift,Ios,Swift,我使用的是collectionView?.keyboardismissmode=.onDrag。解雇键盘也行。但如果“拖动”时取消,则打印的高度等于0,这将导致以后出现问题。有人能解释一下我怎样才能摆脱这个吗?除此之外,我对发生这种情况的原因非常感兴趣 @objc func keyboardWillHide(notification: Notification) { guard let userInfo = notification.userInfo as NSDictionary? e
collectionView?.keyboardismissmode=.onDrag
。解雇键盘也行。但如果“拖动”时取消,则打印的高度等于0,这将导致以后出现问题。有人能解释一下我怎样才能摆脱这个吗?除此之外,我对发生这种情况的原因非常感兴趣
@objc func keyboardWillHide(notification: Notification) {
guard let userInfo = notification.userInfo as NSDictionary? else {
return
}
guard let keyboardFrame = userInfo.value(forKey: UIKeyboardFrameEndUserInfoKey) as? NSValue else {
return
}
let keyboardRectangle = keyboardFrame.cgRectValue
let keyboardHeight = keyboardRectangle.height
print(keyboardHeight) //only prints 0 when dismissed on drag
//do something with keyboard height
}
这是因为您使用UIKeyboardFrameEndUserInfoKey。UIKeyboardFrameEndUserInfoKey包含一个CGRect,用于在屏幕坐标中标识键盘的结束帧(在您的情况下,键盘将隐藏,因此高度将为0)。 因此,您应该使用UIKeyboardFrameBeginUserInfo键。它包含一个CGRect,以屏幕坐标(隐藏前)标识键盘的开始帧