1

これで非常に基本的なグリッドができました。これは 5 列で、3 行必要です。しかし、コンパイラーに2行以上をコンパイルさせることはできません....

コンパイラは不平を言います:「呼び出しの位置 #11、#12、#13、#14、#15 に余分な引数があります」

Text 6から10を削除すると、コンパイルされます....

コード:

struct ContentView: View {
    var columns = [
        GridItem(spacing: 8, alignment: .leading),
        GridItem(spacing: 8, alignment: .center),
        GridItem(spacing: 8, alignment: .center),
        GridItem(spacing: 8, alignment: .center),
        GridItem(spacing: 8, alignment: .center)
    ]

    var body: some View {
        LazyVGrid(columns: columns, spacing: 8) {
            Text("Buttons").font(.headline)
            Text("resting").font(.subheadline)
            Text("active").font(.subheadline)
            Text("loading").font(.subheadline)
            Text("disabled").font(.subheadline)

            Text("1").font(.headline)
            Text("2").font(.subheadline)
            Text("3").font(.subheadline)
            Text("4").font(.subheadline)
            Text("5").font(.subheadline)

            Text("6").font(.headline)
            Text("7").font(.subheadline)
            Text("8").font(.subheadline)
            Text("9").font(.subheadline)
            Text("10").font(.subheadline)
        }.padding(.horizontal, 10)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
4

1 に答える 1

1

ViewBuilder10ビュー制限に達しました...そのため、静的コンテンツを使用する場合、そのルールに適合するように/sでいくつかをラップする必要があります(Groupつまり、ビルドブロックで10ビューを超えないようにしてください)

以下のようなので

var body: some View {
    LazyVGrid(columns: columns, spacing: 8) {
      Group {
        Text("Buttons").font(.headline)
        Text("resting").font(.subheadline)
        Text("active").font(.subheadline)
        Text("loading").font(.subheadline)
        Text("disabled").font(.subheadline)
      }

      Group {
        Text("1").font(.headline)
        Text("2").font(.subheadline)
        Text("3").font(.subheadline)
        Text("4").font(.subheadline)
        Text("5").font(.subheadline)

        Text("6").font(.headline)
        Text("7").font(.subheadline)
        Text("8").font(.subheadline)
        Text("9").font(.subheadline)
        Text("10").font(.subheadline)
      }

      Group {
         ... other code
      }
    }.padding(.horizontal, 10)
}

注: Groupも表示されるため、グループも 10 個以下にする必要があります...ただし、グループには他のグループを含めることができます...

しかし...もちろん、念のため、 のような動的コンテンツを使用することをお勧めしForEachます。

于 2020-07-02T13:34:44.913 に答える