Ios iPhoneX-基于键盘调整视图
我当前正在尝试根据键盘显示/隐藏的时间调整视图的origin.y。我可以对其进行相应的调整,但是,在iPhone X上,我的调整视图的内容显示在状态栏后面 下面是调整视图的代码Ios iPhoneX-基于键盘调整视图,ios,swift,uiview,keyboard,constraints,Ios,Swift,Uiview,Keyboard,Constraints,我当前正在尝试根据键盘显示/隐藏的时间调整视图的origin.y。我可以对其进行相应的调整,但是,在iPhone X上,我的调整视图的内容显示在状态栏后面 下面是调整视图的代码 @objc func keyboardWillShow(notification: NSNotification) { if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRect
@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")
}
}
它们按预期运行,但不包括内容出现在状态栏后面(并且可见-与时间和信号栏等重叠)
以下是提供视觉表现的屏幕截图:
我正在界面生成器中使用安全区域,并根据安全区域约束了UIElements。但是,在调整view.frame.origin.y时,容器视图(自定义导航栏旁边的所有内容)似乎超出了安全区域
在操作视图时,是否有一种方法可以通过编程方式考虑安全区域?当然,您想确切知道安全区域的长度吗?我想如果我计划根据键盘的高度向上移动视图,是否有一种方法可以限制视图可以显示的位置?也就是说,一个分界点?此时我正在调整原点。y-我是否必须创建一个考虑y限制(即安全区域的上限)的全新框架?出于实用性考虑,您不应该移动根视图来考虑键盘。相反,您应该调整滚动视图底部内容插入的大小,使其至少等于键盘的高度。这样,内容本身就不会移动,但即使打开键盘,用户也可以滚动到底部。我将尝试一下。谢谢:)