2016-11-12 8 views
0

下の半分にテキストフィールドがあるので、以下の関数を使用してビューを移動しています。 しかし、実際にはキーボードの上の黒い部分以外のすべてのものになりたいと思っています。それに対処するにはどうすればいいですか? here's the screenキーボードを移動すると黒い部分が表示される

override func viewDidLoad() { 

     NotificationCenter.default.addObserver(self, selector: #selector(ViewControllerForTextfield.keyboardWillShow(_:)), name:NSNotification.Name.UIKeyboardWillShow, object: nil); 
     NotificationCenter.default.addObserver(self, selector: #selector(ViewControllerForTextfield.keyboardWillHide(_:)), name:NSNotification.Name.UIKeyboardWillHide, object: nil); 
     textField.delegate = self 
     super.viewDidLoad() 
    } 


func keyboardWillShow(_ sender: Notification) { 
    if let keyboardSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue { 
     if self.view.frame.origin.y == 0{ 
      self.view.frame.origin.y -= keyboardSize.height + 100 
     } 
    } 

} 

func keyboardWillHide(_ sender: Notification) { 
    if let keyboardSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue { 
     if self.view.frame.origin.y != 0{ 
      self.view.frame.origin.y += keyboardSize.height 
     } 
    } 
} 

}

答えて

0

私は310が上に移動することが多すぎると考えています。カスタムキーボードの場合、キーボードの高さを決めるのは容易ではありません。しかし、this postは、キーボードの高さを取得する方法を説明しています。

EDIT: テキストフィールドから画面の最下部までの距離の差を置き換えることもできますか?

+0

私はあまりにも多いですが、私はテキストフィールドの上にImageViewを持っていますので、私はそれをトリミングしたくありません。答えはありがたいです。 – tyg1

+0

少し私のコードを変更しました – tyg1

+0

@ tyg1私は私の答えを編集しました。多分、キーボード+ TextField + ImageViewが画面に収まらないかもしれません。このような場合は、ImageViewのサイズを変更するか、それをトリミングする必要があります。 しかし、それが正しいと感じる場合は、正しいとマークしてください。 –

関連する問題