2016-11-12 81 views
0

我在視圖的下半部分有一個textfield,所以我使用下面的函數來移動我的視圖。 但實際上一切都看起來像我想成爲除鍵盤上的黑色區域。如何處理它?任何幫助表示讚賞。 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解釋瞭如何獲得鍵盤的高度。

編輯: 也許你還想要從文本字段到屏幕底部的距離的差異?

+0

我同意310這是太多,但我有一個ImageView的頂上的文本框的,所以我不想裁剪。感謝你,雖然 – tyg1

+0

一點點改變了我的代碼 – tyg1

+0

@ tyg1我編輯我的答案的答案。也許它的鍵盤+ TextField + ImageView不適合屏幕。如果是這種情況,您需要更改ImageView的大小或裁剪它。 但是,如果你覺得它的話,請將答案標記爲正確。 –