SwiftUI 更改 SF Symbol 内部透明部分的颜色

标签 swift image swiftui sf-symbols

我正在尝试更改 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)

当我运行上面的代码时,结果就像

symbol .

起初,x符号内部与背景颜色相同。我想让它变黑。
  • 我试图设置 backgroundColorButton它使
    整体Button黑色的。
  • 我试图设置 accentColorImage
    黑色的。没有改变。
  • 我试图设置 backgroundColorImage到黑色。结果可以在图像中看到。

  • 问题是,有没有办法做到这一点 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())
    

    圆圈可能不适合任何用法,但对于此图像,它可以正常工作:

    enter image description here

    关于SwiftUI 更改 SF Symbol 内部透明部分的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013019/

    相关文章:

    ios - collectionView 中的异常(_ :layout:sizeForItemAt:) when accessing layout. collectionViewContentSize

    ios - 选择“图像”或“拍照”并转到新的 ViewController

    ios - 具有可为空返回值的 Obj-c 方法未正确转换为 swift

    c# - 为 Format32bppArgb 设置 Alpha 值

    ios - SwiftUI:@State 已修改但在阅读之后的行时看似未更改

    swiftui - FullScreenCover 关闭后,NavigationLink 不会触发

    ios - 计算属性 - 如何仅在主线程上使用?

    javascript - 如何获取网站的所有src和href属性

    javascript - 在javascript中将字节数组转换为jpeg图像

    ios - 无法在 TextField 中创建绑定(bind) - 范围内的 'cannot find $social''