如何在SwiftUI中创建带有图像的按钮?

Saj*_*jad 9 swift swiftui

我在SwiftUI中使用以下代码行创建了一个按钮:

Button(action: {
    print("button pressed")
}) {
    Image("marker")
}
Run Code Online (Sandbox Code Playgroud)

但是marker图像会自动变为蓝色。

我想在按钮中使用原始图像。

这是原始的marker.png

在此处输入图片说明

但是SwiftUI将其更改为:

在此处输入图片说明

我记得我们有tintColor或类似的东西,UIButton但是我在SwiftUI中找不到它

Zac*_*iro 23

你可以试试这个:

var body: some View {
        Button(action: {
          print("button pressed")

        }) {
            Image("marker")
            .renderingMode(.original)
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可以回答问题,但提供有关此代码为何和/或如何回答问题的附加上下文可以提高其长期价值。 (2认同)

sou*_*cse 12

转到图像,然后将“渲染”更改为“原始图像” 在此处输入图片说明


Hus*_*bir 6

以编程方式进行设置的另一种方法:

var body: some View {
        Button(action: {
          print("button pressed")

        }) {
            Image("marker")
            .renderingMode(Image.TemplateRenderingMode?.init(Image.TemplateRenderingMode.original))
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • `.renderingMode(.original)`对我有用,而且更干净! (6认同)

小智 5

用户界面

var body: some View {
      HStack {
           Image(uiImage: UIImage(named: "Login")!)
                .renderingMode(.original)
                .font(.title)
                .foregroundColor(.blue)

           Text("Login")
                .font(.title)
                .foregroundColor(.white)
      }
}
Run Code Online (Sandbox Code Playgroud)