0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Swift 画面の上下の余白を消せない件

0
Posted at

困ったこと

iPhone 16 Proで実機確認しながら開発していたら、どうしても上下の余白が消せなくて困った。
トップレベルで、試してみたけど、結局余白ができている。
なんで?

@main
struct ambyApp: App {
    var body: some Scene {
        WindowGroup {
            GeometryReader { geo in
                Rectangle()
                    .fill(Color.green)
                    .frame(width: geo.size.width, height: geo.size.height)
            }
            .ignoresSafeArea(.all)
        }
    }
}

画面だとこんな感じ。

んん、なんでなんだ?

LaunchScreenの設定したら解決した

TargetのGeneralで設定します。(いくつか方法はあるみたいですが)

LaunchScreenと入力して再度デバッグビルドしたら解決しました。

原因

iOSがアプリを「互換モード」で動作させているため。
プロジェクト内に有効な Launch Screen(起動画面) の設定がない場合、iOSはそのアプリが最新デバイスの解像度に対応していないと判断し、古いアスペクト比で描画してしまう。

参考ソース:

所感

今回のアプリはマイクを使う必要があったので、いきなり実機で開発始めてたのがハマった原因ですね。
XCode周りはこういうのありますね。
コードの問題ではなく、ビルド周りの問題だと早めに切り分けるのが大事ですね。
最近はClaudeに頼りっきりでしたが、たまにはこうやって自分でプロト対位ピングするのも大事ですね。(Claudeトークン節約したいだけ...)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?