【问题标题】:SwiftUI Button Images showing up blackSwiftUI 按钮图像显示为黑色
【发布时间】:2020-03-09 17:38:55
【问题描述】:

我正在尝试让 SwiftUI 中的按钮在文本旁边显示图像。但是,图像显示为黑色,即使它不在按钮中时显示。我需要对我的代码进行哪些编辑才能正确显示图像。

这是我目前的代码:

List{
    Button(action: {
        self.changeAppIcon("AlternateIcon5")
    }) {
        HStack {
            Image("AlternateIcon5")
                .resizable()
                .frame(width: 50, height: 50)
                .cornerRadius(10.0)
            Text("Navy Blue")
        }
    }


    HStack {
        Image("AlternateIcon5")
            .resizable()
            .frame(width: 50, height: 50)
            .cornerRadius(10.0)
        Text("Test")
    }
}

它的显示如下:

【问题讨论】:

  • 如果将修饰符 .renderingMode(.original) 添加到图像会怎样?
  • .renderingMode(.original) 没有出现在图像的修饰符列表中,当我尝试手动添加它时,它会在代码的更远处产生错误。
  • 这很奇怪,因为它是 Image 的修饰符。 hackingwithswift.com/quick-start/swiftui/…
  • 我能看到原图吗?
  • 我能够让它工作。问题是(我认为)我将它作为图像的最后一个修饰符,但是当它是第一个修饰符时它起作用了。非常感谢安德鲁的帮助。

标签: ios swift xcode button swiftui


【解决方案1】:

无代码:

  1. 从项目导航器转到 Assets.xcassets,然后在此处选择您的图像
  2. 在右侧面板中,属性检查器
  3. 渲染为选择Original Image

记住您应该始终对您不想在其上应用任何颜色的所有图像执行此操作。


带代码:

将此修饰符添加到您的Image

.renderingMode(.original)

注意它应该紧跟Image本身(NOTcornerRadius等其他修饰符之后)

【讨论】:

  • 谢谢。我只在 iPad 上工作,所以“with code:”是解决方案。但实际上,Apple,为什么这不是默认设置?!如果我希望我的图像被严重渲染,我应该可以选择声明.renderingMode(.badlyMangled)
【解决方案2】:

请在 Image() 之后添加.renderingMode(.original)

    List{
    Button(action: {
        self.changeAppIcon("AlternateIcon5")
    }) {
        HStack {
            Image("AlternateIcon5")
                .renderingMode(.original)
                .resizable()
                .frame(width: 50, height: 50)
                .cornerRadius(10.0)
            Text("Navy Blue")
        }
    }


    HStack {
        Image("AlternateIcon5")
            .resizable()
            .frame(width: 50, height: 50)
            .cornerRadius(10.0)
        Text("Test")
    }
}

【讨论】:

    猜你喜欢
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    相关资源
    最近更新 更多