SF Symbols 在 iOS 15 个小部件中丢失了颜色

SF Symbols lost color in iOS 15 widget

多色 SF 符号在 iOS 15 小部件中为黑色。 (看看附图 14.5 vs 15.0)

这是它在代码中的样子:

Image(uiImage: UIImage(systemName: getIconName(iconId: iconId))!)
    .resizable()
    .scaledToFit()
    .frame(width: 20)

玩弄 .renderingMode() 没有帮助。我已经尝试了所有可能的参数,但没有运气。只有当我将它设置为 .template 并设置一些颜色时,但我需要它保持原样 - 多色。

(它发生在 - iPhone 和模拟器上(使用 beta iOS 和 beta XCode 测试),我还尝试使用新的 SF 符号,或应用可用的新功能在 iOS 15 .symbolRenderingMode() 但没有任何帮助)。

iOS14:

iOS15:

iOS15+

部分符号的名称已更改。确保使用正确的名称。


您需要使用 .symbolRenderingMode(.palette) 并使用 .foregroundStyle() 视图修改器

显式设置每个图层的颜色
         Image(systemName: "cloud.sun.fill")
                .symbolRenderingMode(.palette)
                .foregroundStyle(.black, .yellow)

使用

Image(systemName:getIconName(iconId: iconId))

而不是

Image(uiImage: UIImage(systemName: getIconName(iconId: iconId))!)