2
どのようにキーボードの高さの変化、またはiOSの迅速なキーボードの変更を検出するには?
私の下のコードを参照してください、それがテキストキーボードと絵文字キーボードに非常に小さなラインを示していますキーボードの高さを変更するオブザーバースイフト
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardHideNShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardHideNShow(_:)), name: UIKeyboardWillHideNotification, object: nil)
var didDisplayedKeyboard:Bool = false
func keyboardHideNShow(notification:NSNotification) {
var movement: CGFloat = 0.0
let userInfo:NSDictionary = notification.userInfo!
let keyboardFrame:NSValue = userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
let keyboardRectangle = keyboardFrame.CGRectValue()
let movementDuration:NSTimeInterval = 0.3
UIView.beginAnimations("animateView", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(movementDuration)
if notification.name == UIKeyboardWillShowNotification {
// Do the operation only if its hide n show or show n hide
// When the keyboard switches from text to emoji, it wont hide the previous keyboard. will just replace
// In that case we need to avoid the keyboard movement
if didDisplayedKeyboard == false {
movement = -keyboardRectangle.height
didDisplayedKeyboard = true
print("m\(movement)")
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
}
} else if notification.name == UIKeyboardWillHideNotification {
movement = keyboardRectangle.height
didDisplayedKeyboard = false
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
}
UIView.commitAnimations()
}
私は私の視野を調整するにはどうすればよいですか?このような
通知「UIKeyboardWillChangeFrameNotification」を確認してください – zylenv
再生いただきありがとうございます。私はそれをUIKeyboardWillChangeFrameNotificationで変更しました。しかし、それは動作しません。いくつかのサンプルコードを送ってください。 – Mathi