在 iOS 应用程序中使用 HeroIcons 时渲染模糊的 SVG

问题描述

我在 iOS 应用中使用 HeroIcons (https://github.com/tailwindlabs/heroicons)。我已将所有 SVG 文件添加到资源包中,并且能够使用 SwiftUI 呈现 SVG。

但是渲染出来的图标看起来很模糊

blurry

这是SVG配置

enter image description here

这是显示图标的 SwiftUI 代码片段

enter image description here

任何 SVG 导出都可以帮助我解决这个问题?

解决方法

只需在图像配置中选择“保留矢量数据”选项,即可解决您的问题。

,

如果 David 的建议不起作用,那么这可能会起作用:

Image(uiImage: .init(named: "HeroIcons/outline/adjustments",in: Bundle.module,compatibleWith: nil))
       .resizable()
       ...
,

我坚信 ImageSVG 呈现机制有问题。

根据这个问题,我采用了使用 UIImageView + UIViewRepresentable 来渲染 SVG 并且效果很好。

您可以在此处查看与 SwiftuI 兼容的 UIImageView 的类似实现:https://stackoverflow.com/a/61178828/452115