1

我知道我可以像这样在 HStack 中设置视图之间的间距:

HStack(spacing: 10) { .. }

如果我说 HStack 中有 8 个视图,有没有办法将间距设置为1仅在堆栈中 8 个视图的两个连续视图之间,覆盖10在这种情况下设置的初始 HStack 间距?

我希望堆栈中的所有视图相距 10,但是,我希望有两个视图彼此相距 1。

我知道我可以放置另一个包含两个视图的 HStack 并将子堆栈的间距设置为 1。我想知道是否有另一种可能更好的方法。

4

2 回答 2

3

也许padding改用?但是“我知道我可以放置另一个包含两个视图的 HStack 并将子堆栈的间距设置为 1 ”可能是最好的方法。

struct ContentView: View {
    var body: some View {
        HStack(spacing: 0) {
            ForEach(0..<10) { index in
                Rectangle()
                    .fill(Color.green)
                    .frame(width: 40, height: 40)
                    .padding(.horizontal, index == 0 || index == 1 ? 1 : 10)
            }
        }
    }
}

前 2 个有 1 个间距,其余有 10 个

于 2021-07-27T18:13:39.863 回答
0

好吧,您对“另一种方式”有何期待?

你有一个主 HStack,你可以在其中放置 VStacks、HStacks 和 ZStacks。

所以它喜欢..

HStack(spacing: 10) {

    HStack{}
    HStack{}

    HStack(spacing:1){
        HStack{}
    }
}

不要误会我的意思,但我不明白你的问题是什么。这对我来说看起来很舒服:-) 问候。

于 2021-07-27T17:51:25.690 回答