首页 > 解决方案 > SF Symbols 在 iOS 15 小部件中失去颜色

问题描述

多色 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()但没有任何帮助)。

iOS 14:

前

iOS 15:

后

标签: iosswiftuiwidgetwidgetkitsf-symbols

解决方案


iOS 15+

一些符号的名称已更改。确保使用正确的名称。


您需要使用视图修改器 .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))!)

推荐阅读