Ios 显示视图后如何向上移动视图?

Ios 显示视图后如何向上移动视图?,ios,swift,view,keyboard,presentviewcontroller,Ios,Swift,View,Keyboard,Presentviewcontroller,我有一个视图,其中有一个文本字段。每当用户点击texfield时,就会出现一个键盘,然后我将视图向上移动一点。一切都很好,直到我展示了一个新的viewcontroller然后将其关闭,在我关闭了新的viewcontroller之后,我的旧viewcontroller上出现了一个奇怪的行为,类似这样的事情: 这就像在关闭新的viewcontroller后,在显示键盘之前反弹了一点,这将影响我隐藏键盘时,我的视图将低于其原始位置: 这是我的代码: override func viewDidLoa

我有一个视图,其中有一个文本字段。每当用户点击texfield时,就会出现一个键盘,然后我将视图向上移动一点。一切都很好,直到我展示了一个新的viewcontroller然后将其关闭,在我关闭了新的viewcontroller之后,我的旧viewcontroller上出现了一个奇怪的行为,类似这样的事情:

这就像在关闭新的viewcontroller后,在显示键盘之前反弹了一点,这将影响我隐藏键盘时,我的视图将低于其原始位置:

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil)

}

func keyboardWillShow(sender: NSNotification) {

    self.view.frame.origin.y -= 100

}

func keyboardWillHide(sender: NSNotification) {

    self.view.frame.origin.y += 100
}

如何修复此问题?

您需要尝试类似的方法,您不能总是认为键盘会有那么高,尤其是随着第三方键盘的出现

键盘将隐藏
键盘将显示
中,您需要获得键盘高度,如下所示:

if let keyboardSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
    self.view.frame.origin.y += keyboardSize
}

你需要试试这样的东西,你不能总是认为键盘会有那么高,特别是在第三方键盘出现的时候

键盘将隐藏
键盘将显示
中,您需要获得键盘高度,如下所示:

if let keyboardSize = (sender.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
    self.view.frame.origin.y += keyboardSize
}

我想这不是问题,我试过了,在解雇我的newviewcontroller后仍然遇到同样的问题。我想这不是问题,我试过了,在解雇我的newviewcontroller后仍然遇到同样的问题