iPhone X - 基于键盘调整视图

时间:2018-04-15 20:57:42

标签: ios swift uiview keyboard constraints

我目前正在尝试根据键盘显示/隐藏的时间来调整视图的原点。我能够相应地调整它,但是在iPhone X上我调整后的视图的内容会出现在状态栏的后面吗?

以下是调整视图的代码;

@objc func keyboardWillShow(notification: NSNotification) {
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
        if keyboardShown == false{
            self.containerView.frame.origin.y -= keyboardSize.height
            keyboardShown = true
            print("Keyboard UP")
        }
    }
}

@objc func keyboardWillHide(notification: NSNotification) {
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
        if keyboardShown == true{
            self.containerView.frame.origin.y += keyboardSize.height
            keyboardShown = false
            print("Keyboard DOWN")
        }
    }

它们按预期运行,减去内容显示在状态栏后面的事实(并且可见 - 与时间和信号栏等重叠。)

以下是提供直观表示的屏幕截图:

Keyboard Hidden

Keyboard Shown

我在“界面”构建器中使用安全区,并根据安全区限制了我的UIElements。但是,在调整view.frame.origin.y时,容器视图(自定义导航栏旁边的所有内容)似乎都会超出安全区域。

在操作视图时,有没有办法以编程方式考虑安全区?

0 个答案:

没有答案