iOSデバイスのScreenサイズと、Statusバーの大きさをメモ

     
⌛️ < 1 min.

Fastlaneで撮ったスクリーンショットに対して行う編集を自動化するために、機種ごとのStatusバーのサイズを測ったのでメモ

測り方

UIApplication.shared.statusBarFrameを使って測ろうとしたら、iOS13からは、deprecatedでした。
マルチウィンドウ対応で、deprecatedなのでした。

代わりに使うべきなのは、statusBarManagerで、それは、window sceneに紐づいてます。

ちょっと、手続きが必要で、

UIScene取得


let windowScene = UIApplication.shared.connectedScenes.map({$0 as? UIWindowScene}).compactMap({$0}).first!

上記で取れるのは、UIWindowSceneになので、そこから、statusBarManagerを確認することとなります。

コード


print("\(windowScene.statusBarManager?.statusBarFrame)")

例えば、6sPlusでは、以下のように表示されます。

Optional((0.0, 0.0, 320.0, 20.0))

測定結果

スクリーンショット作成に必須な機種について確認しました。(Portlaitモードのみです)

iPhone6s
320 x 20
iPhone XsMax
320 x 20
iPadPro 12.9inch Gen2
768 x 20
iPadPro 12.9inch Gen3
768 x 20

どの機種も幅は違いますが、高さは同じでした

注意点

プログラム上は、上記の数値で良いのですが、実デバイスでの表示サイズは異なります

iPhone6s
1242 x 60
iPhone XsMax
1242 x 130
iPadPro 12.9inch Gen2
2048 x 40
iPadPro 12.9inch Gen3
2048 x 40

意味がさっぱり・・・

いずれにしても、スクリーンショットを加工するときだけ、気をつけないといけません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です