列表包括SwiftUI中的自定义视图

列表包括SwiftUI中的自定义视图,swift,swiftui,Swift,Swiftui,当我将“Grid”()放入一个列表时,SwiftUI出现了一个问题,它会被下一个单元格覆盖。但当我展开“文本”时,单元格会变大 List(0 ..< colorArray.count) { i in VStack(alignment: .leading, spacing: 8) { Text("a") .font(.body) .multilineTextAlignment(.leading) .padding(.horizontal

当我将“Grid”()放入一个列表时,SwiftUI出现了一个问题,它会被下一个单元格覆盖。但当我展开“文本”时,单元格会变大

List(0 ..< colorArray.count) { i in
VStack(alignment: .leading, spacing: 8) {
    Text("a")
        .font(.body)
        .multilineTextAlignment(.leading)
        .padding(.horizontal, 10)
        .lineLimit(nil)
    Grid {
        ForEach(self.colorArray[i], id: \.self) { color in
            RoundedRectangle(cornerRadius: 10)
                .foregroundColor(Color(color))
                .frame(width: 80.0, height:80.0)
                .overlay(
                    RoundedRectangle(cornerRadius: 10)
                        .stroke(Color(UIColor.label),
                                lineWidth: 0.5)
            )
        }
    }
    .padding(.horizontal, 8)
    .gridStyle(
        AutoColumnsGridStyle(minItemWidth: 80, itemHeight: 80, hSpacing: 8, vSpacing: 8)
    )
}
列表(0..
}

我如何才能使“网格”不会像下图中那样被覆盖。

无法重新创建,因为您的代码不完整,但正在应用

.aspectRatio(contentMode: .fit)

无论是到
网格
还是整个
VStack
都应该强制单元格具有正确的大小。

由于代码不完整,无法重新创建此单元格,但正在应用

.aspectRatio(contentMode: .fit)

无论是到
Grid
还是整个
VStack
都应该强制单元格具有正确的大小。

如果将
.fixedSize()
添加到网格中会发生什么?或者
.frame(…)
?如果将
.fixedSize()
添加到网格中会发生什么?或者
.frame(…)
?这解决了我遇到的问题,但是它产生了一个巨大的间隙,列表中的每一行占据了屏幕的一半。你有什么解决办法吗?正如我在回答中提到的,代码是incomlete。您需要包含我可以复制并粘贴到Xcode中的代码,否则我不知道问题来自何处。这修复了我的问题,但它会造成巨大的差距,列表中的每一行占据屏幕的一半。你有什么解决办法吗?正如我在回答中提到的,代码是incomlete。您需要包含我可以复制并粘贴到Xcode中的代码——否则我不知道问题来自何方。