我想添加圆角矩形到整个行时,用户点击任何网格项目从该行。。我怎么能添加该矩形到整个行。。
struct ContentView: View {
let data = [Date]
let columns = Array(repeating: GridItem(.flexible()), count: 7)
var body: some View {
LazyVGrid(columns: columns, spacing: 20) {
ForEach(data, id: \.self) { item in
Text(item.date)
}
}
.padding(.horizontal)
}
}
我希望得到行项目组,这样我就可以添加到它的覆盖…但我无法得到它
2条答案
按热度按时间but5z9lq1#
您可以使用堆栈组合来创建网格。每一行都可以是一个HStack,您可以使用“onTapGesture”或任何您想要更改行外观的视图修改器对其应用。
这可以是一个简单的例子:
我使用滚动视图使网格可以双向滚动,但是如果不需要这种行为,可以省略它们。
piok6c0g2#
我已经解决了这个问题,在过去通过打破数据到数组中的每一行,然后有一个额外的ForEach来构建行.这些然后可以被边界.有效地每行成为自己的LazyVStack.代码示例我有测试是下面.有一件事要注意的是,因为它是有效地不同的网格,如果你的数据宽度在每行不同,每行可以有不同的列间距。在这种情况下,使用固定宽度的列将在行列表(LazyVGrids)中保留这一点。