1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SwiftUIでLazyVGridを使用して横幅に対して高さが1.2倍セルを表示する実装

Posted at

現在SwiftUIを勉強中なので、さまざまなUIを実装しています。
画面サイズを取得して設定する練習として
SwiftUIでLazyVGridを使用して横幅に対して高さが1.2倍セルを表示する実装をしてみました。

Xcode Version 14.2

LazyVGridSumple.swift
struct LazyVGridSumple: View {
    var body: some View {
        let deviceWidth = UIScreen.main.bounds.width
        let grids = Array(repeating: GridItem(.fixed((deviceWidth - 32)/3),spacing: 8.0), count: 3
        )
        ScrollView() {
            LazyVGrid(columns: grids) {
                ForEach((1...50), id: \.self) { num in
                    Text("\((deviceWidth - 32)/3)")
                        .frame(width:(deviceWidth - 32) / 3,height: ((deviceWidth - 32)/3) * 1.2)
                        .background(Color.green)
                }
            }
        }
    }
}

スクリーンショット 2023-08-20 15.33.26.png

内容としては
let deviceWidth = UIScreen.main.bounds.width
で横幅を取得します

32という数字は左右のスペースとして8開けたいので8×4で32です
※数字系は定数で定義したほうが良いです。。

あとはリスト内のテキストの大きさを横幅からスペースを引いた数を表示するセルの数、今回は3で割っています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?