👔
SwiftUI.Form内で画像を表示させる際に余白を消したい場合は.listRowInsets(.init())を使う
困る
SwiftUIでFormを使う時にImageを使うとCellの余白が画像に影響を受ける。
最初に結論
- Form利用時のセルの余白は
listRowInsets
で制御する- 下記のどれでもいい
.listRowInsets(.init())
.listRowInsets(EdgeInsets())
.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
- 下記のどれでもいい
具体的に困る時の例
例えば次のような感じで左右に余白ができている。ダークモードなんでわかりづらいと思うけど。
...
Form {
Image(uiImage: image)
...
}
...
listRowInsets
この余白はlistRowInsetsで潰せる
...
Form {
Image(uiImage: image)
.listRowInsets(.init())
...
}
...
考え
-
.listRowInsets(.init())
を使うのはListと一緒である- SwiftUIとしてListがまず先にあってFormがあとにできた
- Listは内部がUITableViewっぽい、Formも同じくUITableViewっぽいね
- ListでやれることはFormでやれそう
- 例
- Section
- 困ったらListについて調べるとよいかも
- 例
- SwiftUIとしてListがまず先にあってFormがあとにできた
リンク
Discussion