shima0215
@shima0215 (shima)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

SafeArea有りのiPadでsafeAreaInsets.bottomとToolbarに描画される高さが異なる

解決したいこと

SafeArea有りのiPadでsafeAreaInsets.bottom(70px)とToolbarに描画される高さ(65px)が異なるためツールバーとViewとの間に隙間ができます。
Storyboardで”Shows Toolbar”にチェックを入れるとsafeAreaInsets.bottomとToolbarに描画される高さが一致するのですが、なぜ動作が異なるのかがわかりません。
コードで対応する方法はないでしょうか?

Simulator Screen Shot - iPad mini (6th generation).png

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

No Answers yet.

Your answer might help someone💌