Ios HStack中项目的线性颜色渐变?

Ios HStack中项目的线性颜色渐变?,ios,swiftui,linear-gradients,hstack,Ios,Swiftui,Linear Gradients,Hstack,在SwiftUI中是否有一种方法可以为HStack中的所有项目添加渐变色 您可以对HStack.background和.foregroundColor应用单独的颜色,但由于LinearGradient是符合视图的结构,因此无法将其传递给.foregroundColor,因为它需要颜色 您可以通过各种方式解决这个问题(下面的一个例子使用了不透明度),但如果我遗漏了其他内容,我很好奇有这么多SwiftUI选项 SwiftUI示例: struct GradView: View { var b

在SwiftUI中是否有一种方法可以为HStack中的所有项目添加渐变色

您可以对HStack
.background
.foregroundColor
应用单独的颜色,但由于LinearGradient是符合视图的结构,因此无法将其传递给
.foregroundColor
,因为它需要颜色

您可以通过各种方式解决这个问题(下面的一个例子使用了不透明度),但如果我遗漏了其他内容,我很好奇有这么多SwiftUI选项

SwiftUI示例:

struct GradView: View {
    var body: some View {
        HStack {
            ForEach((1...5).reversed(), id: \.self) { index in
                RoundedRectangle(cornerRadius: 5)
                    .frame(width: 50, height: 50)
                    .opacity(Double(index) / 5)
            }
        }.foregroundColor(Color.red)
    }
}
SwiftUI输出:


内置渐变功能。。。如何呈现它取决于我们。。。这是可能的替代方案,但它只是。。。许多其他变体之一。。你知道


如果你说的是内置的,那么就不是了,但是正如你所说的,有很多种方法——你自己的有什么问题?从帖子中不清楚你想达到什么目的。由于SwiftUI是新的,我的理解有限,我只想检查一下是否有一种内置的方法可以做到这一点。看来你自己滚是最好的选择,非常感谢先生。
struct GradView: View {
    var body: some View {
        HStack(spacing: 0) {
            ForEach((1...7).reversed(), id: \.self) { index in
                HStack(spacing: 0) {
                    Rectangle().fill(Color.clear)
                        .frame(width: 50, height: 50)
                    Rectangle().fill(Color(UIColor.systemBackground))
                        .frame(width: 4, height: 50)
                }
            }
        }.background(LinearGradient(gradient: 
           Gradient(colors:[.red, .black]), 
                    startPoint: .leading, endPoint: .trailing))
    }
}