我创建了一个聊天 UI,我在其中为屏幕底部的 tableView
添加了一个 constraint
。我通过添加键盘高度来更改约束值,这在除 iPhone X 之外的所有设备中都可以正常工作。
键盘不可见时的用户界面:
这很好。
问题是当键盘出现时, TextView 和键盘之间的空白区域是可见的:
我是否必须为此尝试不同的方法,或者可以使用约束来解决?
最佳答案
在计算约束值时尝试减去安全区域底部插图的高度。
这是一个处理 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
}
关于ios - iPhone X 键盘出现显示额外的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47286239/