我正在尝试更改 SF Symbol
内部清晰(透明)部分的颜色叫 delete.left.fill
.到目前为止,我已经尝试如下
Button(action: { return }, label: {
Image(systemName: "delete.left.fill")
.background(Color.black)
//.accentColor(.black)
.font(.system(size: self.fontSize*0.75))
})
.frame(width: self.width, height: self.width)
.foregroundColor(.lightGray)
//.background(Color.black)
当我运行上面的代码时,结果就像
.
起初,
x
符号内部与背景颜色相同。我想让它变黑。backgroundColor
的Button
它使整体
Button
黑色的。 accentColor
的Image
到黑色的。没有改变。
backgroundColor
的Image
到黑色。结果可以在图像中看到。 问题是,有没有办法做到这一点
x
,内symbol
,以编程方式黑色?
最佳答案
您可以屏蔽背景并应用自定义样式:
struct MyButtonStyle: ButtonStyle {
public func makeBody(configuration: MyButtonStyle.Configuration) -> some View {
configuration.label
.compositingGroup()
.opacity(configuration.isPressed ? 0.5 : 1.0)
}
}
Button(action: {}) {
Image(systemName: "delete.left.fill")
.foregroundColor(.green)
.background(
Color.black.mask(Circle())
)
}.buttonStyle(MyButtonStyle())
圆圈可能不适合任何用法,但对于此图像,它可以正常工作:
关于SwiftUI 更改 SF Symbol 内部透明部分的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013019/