[iOS]キーボードの高さエラーの解決策


一般的なKeyBoardイベントの処理
アプリケーションでキーボードを呼び出すと、キーボードがUIに表示され、ビューの一部が遮断されます.キーボードの高さを求めることでこの問題を解決するのが一般的です
多くの資料はNotificationCenterにkeyBoardWillShowとkeyBoardWillHideを登録し、キーボードの問題を次のように処理しています.
bottomSuperViewをキーボードの高さに引き上げたい
@objc
func keyBoardWillShow(_ sender: Notification) {
  if let keyboardFrame: NSValue = sender.useInfo?
  [UIResponder.keyboardFrameEndUserInfoKey] as? NSValue
  {
    let keybaordRectangle = keyboardFrame.cgRectValue
    let keyboardHeight = keybaordRectangle.height
    
    // [주의]
    bottomSuperView.frame.origin.y -= keyBoardHeight
  }
}
     
セキュリティ領域に注目
しかし、Nochを持つiPhoneバージョンであれば、上記の方法は正しく使えません.safeAreaを考えなければならないからです.
上のコードの「注意」コードを変更すると、正しいキーボードの高さが見つかります.
bottomSuperView.frame.origin.y -= (keyboardHeight - view.safeAreaInsets.bottom)