【SwiftUI】iOS15でListのSection上部にスペースが生じる件

———
【追記 2022/9/14】
iOS16では、当記事の方法ではスペースを変更できなくなりました。
新たな対応策はこちらの記事をご参照ください。
———

iOS15になって、急にPlainListStyleのListのSection上部にスペースが生じるようになりました。

struct ContentView: View {

    var body: some View {
        List {
            Section(header: Text("Section (iOS \(UIDevice.current.systemVersion))")) {
                ForEach(1...5) { row in
                    Text("Row: \(row)")
                }
            }
        }
        .listStyle(.plain)
    }
}

↑上記ソースをiOS15と14.5で実行した結果の比較ですが、iOS15ではSectionの上が妙に離れています。

iOS15でSection(UITableViewのHeader)のデフォルトのデザインが変更されてこうなったようですが、それに伴いUITableViewに sectionHeaderTopPadding というプロパティが追加されています。
(参考 : https://developer.apple.com/documentation/uikit/uitableview/3750914-sectionheadertoppadding

調べたところSwiftUIからではこれを変更することはできなさそう(?)でしたので、UITableView.appearance() を使います。

// Write this somewhere
if #available(iOS 15, *) {
    UITableView.appearance().sectionHeaderTopPadding = 0
}

結果は以下のとおりです↓

Appleの中でSwiftUIを本気で使わせる気がないのではないかと疑いたくなる、相変わらずの痒いところの手の届かなさ。

何はともあれ、ひとまずこれで対処していきます。
(もしSwiftUIから修正できる方法をご存知の方がいましたら、Twitterやお問い合わせからこっそりお教えいただけると助かります)

ちなみに、AppStoreでリリース済みのアプリ(Xcode 12.5でビルド)は大丈夫だったので、Xcode 13からこの対応が必要になるようです。