iOS 15
从 iOS 15 和 SFSymbols 3 开始,您可以使用前景样式修饰符将不同的颜色层应用于单个符号:
Image(systemName: "person.circle")
.resizable()
.foregroundStyle(.red, .blue)
.frame(width: 200, height: 200, alignment: .center)
iOS 13 和 14
您可以将 aZStack
与图标的不同部分一起使用,并对每个图层应用不同的修饰符,例如:
/// I've used `GeometryReader ` for setting the size of elements dependent on each other
GeometryReader { proxy in
ZStack {
Image(systemName: "circle")
.resizable()
.foregroundColor(.blue)
Image(systemName: "person.fill")
.resizable()
.foregroundColor(.red)
.frame(
width: proxy.size.width * 0.55,
height: proxy.size.width * 0.55,
alignment: .center
)
}
}.frame(width: 200, height: 200, alignment: .center)
请注意,旧方法和新方法看起来略有不同,但感觉相同。(仔细看看头部的圆度)