0

所以我试图获得一个包含不同大小单元格的自定义网格。我有点卡在这里了。所以我有一个特定的单元格,其高度和大小是所有其他单元格的两倍。但是单元格的左侧需要两行而不是一行。如何在下图中强制在 H3 下方或 H4 框左侧再添加两个框。

这是我的代码:

struct CustomGridView: View {
var body: some View {
    let gridItems = [GridItem(.fixed(150), spacing: 10, alignment: .leading),
                     GridItem(.fixed(150), spacing: 10, alignment: .leading),
                     GridItem(.fixed(150), spacing: 10, alignment: .leading)]

    LazyVGrid(columns: gridItems, spacing: 10) {
        ForEach(0..<9) { g in
            
            Text("H:\(g)")
                .frame(width: g == 4 ? 310 : 150, height: g == 4 ? 310 : 150)
                .background(Color.red)
            
            if g == 4 { Color.clear }
            
        }
    }
    .frame(width: 470)
}
}

这是到目前为止网格情况的屏幕截图:

在此处输入图像描述

对此的任何帮助将不胜感激。

4

1 回答 1

0

我认为仅使用惰性 vgrid ForEach 时无法做到这一点...如果您连续检查最高的单元格高度,然后以某种方式再用两个框填充它,也许您可​​以这样做。您需要为此编写一个自定义函数。还有哪个块将进入 H:3 上方/下方的空白区域?您需要为此编写一些自定义逻辑。

于 2021-10-08T00:19:59.940 回答