SafeArea有りのiPadでsafeAreaInsets.bottomとToolbarに描画される高さが異なる
解決したいこと
SafeArea有りのiPadでsafeAreaInsets.bottom(70px)とToolbarに描画される高さ(65px)が異なるためツールバーとViewとの間に隙間ができます。
Storyboardで”Shows Toolbar”にチェックを入れるとsafeAreaInsets.bottomとToolbarに描画される高さが一致するのですが、なぜ動作が異なるのかがわかりません。
コードで対応する方法はないでしょうか?
Version/Build
- iOS15
- Xcode 13.1
- iPad mini 6th Simulator
該当するソースコード
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setToolbarHidden(false, animated: false)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let insetsBottom = self.view.safeAreaInsets.bottom
let screenHeight = UIApplication.shared.keyWindow?.bounds.size.height ?? 0
let toolbarFrameY = (self.navigationController?.toolbar.frame.origin.y ?? 0)
print("safeAreaInsets.bottom=\(insetsBottom), toolbar.height with safeArea=\(screenHeight - toolbarFrameY)")
}
}
自分で試したこと
Storyboardで”Shows Toolbar”にチェックを入れるとsafeAreaInsets.bottomとToolbarに描画される高さが一致します。
0