🐷
[iOS 15+] TableViewのsection headerの上の空白をなくす方法
UITableViewのsection headerの上の空白
iOS 15+では、TableViewのsection headerの上に空白が存在する。
空白をなくす方法 (仮)
iOS 15からsectionHeaderTopPaddingが追加されたので、それを使う。しかし・・・
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0
}
全プロジェクトに適用したい場合は
if #available(iOS 15.0, *) {
UITableView.appearance().sectionHeaderTopPadding = 0
}
しかし・・・
sectionHeaderTopPadding = 0
にした後、
なんと、、なぜか、、headerが切り替わるの挙動が変わる!!(iOS 14の挙動になる)
Before(iOS 15本来の挙動) | After |
---|---|
sectionのタイトルが切り替わる | 上のsectionが上に押し出される |
![]() |
![]() |
解決方法 (最終)
おそらくSDKのバグかも・・
挙動が変わることを避けたいのなら、以下の解決方法がある。
if #available(iOS 15.0, *) {
tableView.sectionHeaderTopPadding = 0.01 // 0に設定ではなく
}
全プロジェクトに適用したい場合は
if #available(iOS 15.0, *) {
UITableView.appearance().sectionHeaderTopPadding = 0.01
}
SwiftUIの場合
SwiftUIの場合も同じ。
UITableView.appearance().sectionHeaderTopPadding
を設定。
Discussion