【问题标题】:SF Symbols lost color in iOS 15 widgetSF Symbols 在 iOS 15 小部件中失去颜色
【发布时间】:2021-10-16 11:44:31
【问题描述】:

多色 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:

【问题讨论】:

  • 在 macos 12.beta5、xcode 13.beta5、target ios 15 和 macCatalyst 上对我来说同样的问题。视图中的图像。可能是另一个错误。
  • 尝试将Image(uiImage: UIImage(systemName: getIconName(iconId: iconId))!)替换为Image(systemName: getIconName(iconId: iconId)),系统镜像的原生SwiftUI实现。

标签: ios swiftui widget widgetkit sf-symbols


【解决方案1】:

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

【讨论】:

  • Image(systemName:getIconName(iconId: iconId)) 和 .symbolRenderingMode(.multicolor) 的组合成功了。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-11-17
  • 2020-05-10
  • 2019-10-20
  • 1970-01-01
  • 2019-10-24
  • 2022-06-29
  • 2020-08-06
  • 2020-12-22
相关资源
最近更新 更多