首次加载时键盘高度为0 - Swift

Jon*_*ley 2 keyboard ios swift

我正在尝试使用以下代码在键盘出现时向上移动视图:

func keyboardWillShow(notification: NSNotification) {
if let keyboardSize: CGSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size {

            if self.view.frame.origin.y == 0{
                print("Keyboard height is: \(keyboardSize.height)")

                let keyboardHeight = keyboardSize.height - (self.tabBarController?.tabBar.frame.height)!
                self.view.frame.origin.y -= (keyboardHeight)
                print("Keyboard height is: \(keyboardSize.height)")

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦打开应用程序,第一次调用此函数时,键盘高度将填充为0,这意味着视图会下降tabBar的高度.当我重新加载视图时,它从那时起就完美地运行了.

在键盘实际打开之前,似乎我没有获得键盘高度,这对于第一次运行功能来说已经太晚了.

知道问题是什么吗?如果您想了解更多详情,请与我们联系.

Dan*_* T. 9

使用UIKeyboardFrameEndUserInfoKey而不是UIKeyboardFrameBeginUserInfoKey看看是否有帮助.