我目前正在尝试根据键盘显示/隐藏的时间来调整视图的原点。我能够相应地调整它,但是在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")
}
}
它们按预期运行,减去内容显示在状态栏后面的事实(并且可见 - 与时间和信号栏等重叠。)
以下是提供直观表示的屏幕截图:
我在“界面”构建器中使用安全区,并根据安全区限制了我的UIElements。但是,在调整view.frame.origin.y时,容器视图(自定义导航栏旁边的所有内容)似乎都会超出安全区域。
在操作视图时,有没有办法以编程方式考虑安全区?