【发布时间】:2022-01-08 14:04:16
【问题描述】:
我正在尝试创建一个矩形视图,其中包含给定数量的矩形,
我正在尝试重新创建它,并选择传递一个大小以向其添加更多级别,目前我只设法覆盖
let colors: [Color] = [.red, .green, .blue]
var body: some View {
ZStack {
ForEach(colors, id: \.self) { color in
Text(color.description.capitalized)
.background(color)
}
}
}
我在寻找问题时才发现,唯一的问题是具有可调整大小的值,在使用循环时可以逐渐变小,目前我得到的最接近的是:
struct SquareContent{
var color: Color
var size: CGSize
}
struct GrannySquareComplete: View {
let colors: [SquareContent] = [
SquareContent.init(color: .red, size: CGSize(width: 100, height: 100)),
SquareContent.init(color: .white, size: CGSize(width: 80, height: 80)),
SquareContent.init(color: .red, size: CGSize(width: 80, height: 80))]
var body: some View {
ZStack {
ForEach(0...colors.count) { i in
Text("")
.frame(width: colors[i].size.width, height: colors[i].size.height)
.background(colors[i].color)
.border(.white)
}
}
}
}
但这会返回一个错误
对初始化程序的调用没有完全匹配
我相信这是由于在 foreach 循环中使用了 Text 但不知道如何解决这个问题。
【问题讨论】: