SF Symbols在iOS 15小部件中失去颜色

icomxhvb  于 2023-08-08  发布在  iOS
关注(0)|答案(2)|浏览(122)

多色SF符号在iOS 15小部件中为黑色。(请看附件图片14.5 vs 15.0)
这是它在代码中的样子:

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

字符串
.renderingMode()没有帮助。我试过所有可能的参数,但没有运气。只有当我设置为。模板和设置一些颜色,但我需要它是因为它是-多色。
(It发生在iPhone和模拟器(测试版iOS和测试版XCode),我也尝试使用新的SF符号,或应用iOS 15 .symbolRenderingMode()中可用的新功能,但没有任何帮助)。
iOS 14:
x1c 0d1x的数据
iOS 15:


hs1ihplo

hs1ihplo1#

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))!)

shyt4zoc

shyt4zoc2#

iOS 16+

也许@mahan的解决方案在iOS 15上有效,但在iOS 16+上对我不起作用。我找到了一个工作组合:
1.第一个月
1.它只适用于<IMAGE_ID>.fill图标。如果你尝试使用非填充变量,它将不起作用。
好好享受吧!
P.S.注意,并非所有的SF图标都有填充版本,因此您可能希望在显示它之前确保它存在。

相关问题