2016-07-03 5 views
0

私はチャットビューを持っており、ビューの高さを変更してキーボードを使ってtextViewを上に移動しました。しかし、キーボードの種類を絵文字に変更し、通常のキーボードに戻すと、UIKeyboardWillShowNotificationが再度起動し、ビューをさらにステップアップします(つまり、キーボードの高さを増やす)。 これを追跡して、キーボードの高さを引き算していないか、または絵文字キーボードの追加の高さだけを差し引くだけでよいことを確認するにはどうすればよいですか?keyboardWillShowイベントでさらに変更が加えられました

func keyboardWillShow(notification: NSNotification) { 
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { 
     self.view.frame.size.height = self.view.frame.size.height - keyboardSize.height 
     self.view.layoutIfNeeded() 
    } 
} 

enter image description here

私は正常に戻っ

への絵文字から、キーボードを変更し、

enter image description here

を絵文字キーボードを変更します

enter image description here

答えて

1

self.view.frame.heightを使用する代わりに、画面の高さを使用します。

func keyboardWillShow(notification: NSNotification) { 
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { 
    self.view.frame.size.height = UIScreen.mainScreen().bounds.size.height - keyboardSize.height 
    self.view.layoutIfNeeded() 
} 

}

アンもっと簡単な方法は、それが自動的にあなたが望むすべてを処理してコード

https://github.com/hackiftekhar/IQKeyboardManager

に、このサードパーティ製のユーティリティをインポートすることです。

関連する問題