SF Symbols 在 iOS 15 小部件中失去颜色
Posted
技术标签:
【中文标题】SF Symbols 在 iOS 15 小部件中失去颜色【英文标题】:SF Symbols lost color in iOS 15 widget 【发布时间】: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实现。
【参考方案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) 的组合成功了。谢谢以上是关于SF Symbols 在 iOS 15 小部件中失去颜色的主要内容,如果未能解决你的问题,请参考以下文章