我只能将.png文件上传到 Assets 文件夹吗? .svg文件出现错误。
我想将其用于Image()组件
最佳答案
您可以使用Macaw来显示SVG:https://github.com/exyte/Macaw
1)通过SPM将Package添加到您的项目中(标记0.9.5实际上不起作用,您需要使用master分支)
2)将您的.svg文件移动到项目中,或者在Assets.xcassets中创建一个新的数据集,然后将svg文件添加到该数据集。
3)使用此代码:
struct MyView: View {
var svgName: String
var body: some View {
SVGImage(svgName: self.svgName)
.frame(width: 50, height: 550)
}
}
struct SVGImage: UIViewRepresentable {
var svgName: String
func makeUIView(context: Context) -> SVGView {
let svgView = SVGView()
svgView.backgroundColor = UIColor(white: 1.0, alpha: 0.0) // otherwise the background is black
svgView.fileName = self.svgName
svgView.contentMode = .scaleToFill
return svgView
}
func updateUIView(_ uiView: SVGView, context: Context) {
}
}