如何在iphone x中使用安全区域处理键盘使用AutoLayout?

时间:2017-12-18 11:45:55

标签: ios iphone swift ios11 safearealayoutguide

在iphone x中设置安全区域后。键盘打开时,安全区域(键盘上方的白色区域)位于键盘上方,以便如何处理键盘?

enter image description here

键盘上方的白色区域。

处理键盘代码: -

if showsKeyboard {
                  self.constraintBottomAttachmentView.constant =  keyBoardRect.size.height - self.view.safeAreaInsets.bottom /*(34)*/ } 

键盘高度在iphone x中有所增加,因此如果我从键盘高度减去 - 34,则白色区域会减小。 代码: -

{{1}}

那么如何在没有手动执行此操作且以优化的方式解决此问题的方法呢?

1 个答案:

答案 0 :(得分:5)

您可以通过以下方式获取iPhone X底部空间的高度:

view.safeAreaInsets.bottom

请注意,这仅适用于iOS 11及更高版本,因此您需要以下条件:

if #available(iOS 11.0, *) {
//Move Composebar for iOS 11
} else {
//Move Composebar for other Versions
}

在你的情况下,这看起来类似于:

if showsKeyboard {
      if #available(iOS 11.0, *) {
          self.constraintBottomAttachmentView.constant =  keyBoardRect.size.height - view.safeAreaInsets.bottom
      } else {
          self.constraintBottomAttachmentView.constant =  keyBoardRect.size.height
} else { // Keyboard is going to disappear. Move composebar down.
      self.constraintBottomAttachmentView.constant = 0
}

这对你有用吗?