ios - 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:
解决方案
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))!)
推荐阅读
- woocommerce - 如何在 WooCommerce 中按付款方式对订单进行排序?
- c - 为什么我不能通过这段代码得到正确的输出?
- linux - 如何监视文件并在终端中打印出更改(使用 inotify)?
- php - 有没有办法选择需要本地作曲家包?
- java - 如何在后续请求中修复错误“每个 RabbitTemplate 仅支持一个 ConfirmCallback”
- c# - 使用 c# 反转字符串
- ios - touchesBegan 在 iOS 12 中被调用,但在 iOS 13 中未被调用
- c++ - 将现有的 shared_ptr 附加到 shared_ptr 的向量
- java - 如何根据实体变量名获取实际的列名?
- css - CSS 文件对 Vue 产品构建没有影响