Open3
【SwiftUI】基本的なView構造体の使い方

LazyHGrid / LazyVGrid
LazyVGrid(columns: columns, spacing: 15) {
//gridに並べるView
}
- 垂直方向に伸びるグリッドを作成する。
- イメージ的にはCSSのgridプロパティに近い?
columns
第1引数のcolumnsはGridItemという配列形式の構造体を渡す。
GridItemについては下のように第1引数にグリッドのサイズ、第2引数にスペーシングを設定する。
GridItem(.fixed(30), spacing: 1),
これをこのように配列化し、例えばLazyHGridに使う場合は1〜4行目までの振る舞いを記載することができる。
let rows = [
GridItem(.fixed(30), spacing: 1),
GridItem(.fixed(60), spacing: 10),
GridItem(.fixed(90), spacing: 20),
GridItem(.fixed(10), spacing: 50)
]
配列形式であれば良いので以下のようにArray構造体に引数repeatingとcountを渡して生成することも可能。
Array(repeating: GridItem(.flexible()), count: 7)
第1引数でフレキシブルなサイズを指定し、第2引数でそれを7回繰り返すことを定義している。
alignment
第2引数のaliginmentは位置を指定する。
.leading
、.trailing
、.center
から指定し、指定しない場合のデフォルト値は.center。
spacing
第3引数のspacingはCGFloat構造体を取る。
grid間のスペーシングを指定する。

Listをスクロールさせない方法
- ListViewはscrollableとなっており意図しない動きをしてしまうことがある。
- StackOverflowにはForEachを使う方法も回答にあったが、配列やタプル型の中身を表示する訳ではない場合もあると思われる。
- .scrollDisabled(true)をListビューのメソッドとして付け足せばスクロールされなくなる。

四角形のコーナーを部分的に丸める方法