iPhone X键盘显示出额外的空间

Ami*_*mit 20 ios swift iphone-x

我创建了一个聊天用户界面,我在其中添加了一个constraint用于tableView屏幕底部的.我正在通过添加键盘的高度来更改约束值,该键盘在除iPhone X之外的所有设备中都能正常工作.

键盘不可见时的UI:

在此输入图像描述

哪个好.

问题是当键盘出现空白区域在textView和键盘之间可见时:

在此输入图像描述

我是否必须为此尝试不同的方法,或者可以使用约束来解决它?

nat*_*ter 39

尝试在计算约束的值时减去安全区域底部插入的高度.

这是一个处理UIKeyboardWillChangeFrame通知的示例实现.

@objc private func keyboardWillChange(_ notification: Notification) {
    guard let userInfo = (notification as Notification).userInfo, let value = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue else { return }
    let newHeight: CGFloat
    if #available(iOS 11.0, *) {
        newHeight = value.cgRectValue.height - view.safeAreaInsets.bottom
    } else {
        newHeight = value.cgRectValue.height
    }
    myConstraint.value = newHeight
}
Run Code Online (Sandbox Code Playgroud)

  • view.safeAreaInsets.bottom即将变为0。对于我来说,该空间仍然存在。 (2认同)