0

我已将LazyHGrid和上的间距设置为 0,但垂直方向GridItems仍有间距。这是为什么?如何消除该间距?

struct ContentView: View {
    
    let strs: [String] = ["aa", "", "bbbb"]
    let hgRows: [GridItem] = [GridItem(.fixed(60), spacing: 0), GridItem(.fixed(60), spacing: 0)]
    
    var body: some View {
        VStack(spacing: 0) {
            Text("Stuff at top").padding().frame(maxWidth: .infinity).background(Color.blue.opacity(0.5))
            Divider()
            ScrollView(.horizontal) {
                LazyHGrid(rows: hgRows, spacing: 0) {
                    ForEach(1..<10) { i in
                        Text("B\(i).\(strs[i % strs.count])")
                            .padding().border(Color.gray, width: 1)
                    }
                }
                .padding(0)
                .background(Color.green.opacity(0.5)) // Give HGrid a green background so I can see where it is.
            }.layoutPriority(1)
            Divider()
            Spacer().layoutPriority(2)
        }
    }
}
4

1 回答 1

0

通过调整GridItems,可以消除项目之间的垂直空间:

let hgRows: [GridItem] = [GridItem(.fixed(51), spacing: 0), GridItem(.fixed(51), spacing: 0)]

这显然不是最好的解决方案,但这就是我修复它的方式。我希望这回答了你的问题。

于 2022-02-14T17:51:34.317 回答