我找不到任何有关如何使用SwiftUI 在前景上对图像进行线性渐变的相关文档。
我试图这样做:
Image("IconLoseWeight")
.frame(width: 30.0, height: 30.0)
.padding(.leading, 17)
.foregroundColor(LinearGradient(gradient: Gradient(colors: [.white, .black]), startPoint: .top, endPoint: .bottom))
实际上,上面显示的代码不会显示任何错误,但是会使用在顶级堆栈中没有意义的警告来打乱代码(我认为这是Xcode或SwiftUI的错误)。如果删除foreground
修饰符,则代码可以完美运行。
这是因为frontendColor需要a Color
,但是LinearGradient
a struct
符合协议ShapeStyle
and View
。
如果我理解正确,您想用渐变填充图像的不透明区域吗?
ZStack { Color.white // For the background. If you don't need a background, you don't need the ZStack. LinearGradient(gradient: Gradient(colors: [.green, .blue]), startPoint: .top, endPoint: .bottom) .mask(Image("AssetWithTransparency") .resizable() .padding() .aspectRatio(contentMode: .fit)) }.cornerRadius(15)
结果看起来像这样: