この記事では、SwiftUIでLazyVGridを実装する方法について徹底解説していきたいと思います。
LazyVGridとは?
LazyVGridというのは、UIKitでいうCollectionViewみたいなものです。左上詰めで並んでいくViewのことを指します。

イメージ的には、Instagramや、PinterestなどのスクロールできるViewことです。
基本的な使い方

struct ContentView: View {
private let columns: [GridItem] = Array(repeating: .init(.flexible(), spacing: 10, alignment: .center), count: 4)
var body: some View {
ScrollView(.vertical) {
LazyVGrid(columns: columns) {
ForEach((1...50), id: \.self) { index in
Rectangle()
.foregroundColor(.pink)
.aspectRatio(contentMode: .fill)
}
}
}
}
}
ちょっと複雑なので、一つ一つ丁寧に解説していきたいと思います。
まず、LazyVGridを使う上で必要になってくるのが、columnsです。要は列の情報です。
private let columns: [GridItem] = Array(repeating: .init(.flexible(), spacing: 10), count: 4)
一つ一つ説明していくと、
まず、repeating:で配置を決めます。.flexible()は可変サイズで、画面のサイズによってセルのサイズが変わります。ここを.fixed(50)とかにすると、幅が固定されます。.adaptive()だと最大まで大きくなります。
次に、spacing: 10は、セルとセルの間のスペースを決められます。
次に、count: 4というのは、4列という意味です。これを3とかにすると3列で表示されます。
そして、それらの情報をLazyVGridに渡してあげます。あとはForEachで回すだけなので、わかると思います。

