我只能上传.png文件到资源文件夹吗?对于.svg文件,我遇到了错误。
我想在
Image()
组件中使用它。在XCAssets中也可以导入svg图像。
进入XCAssets,点击+按钮。参考此图像
点击导入并选择svg图像。
现在使用以下代码加载和显示该图像:
Image(uiImage: UIImage(named: "imageName")!)
您可以使用Macaw来显示SVG:https://github.com/exyte/Macaw
1)通过SPM将软件包添加到您的项目中(标签0.9.5实际上不起作用,您需要使用主分支)
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) {
}
}
SVGImage(svgName: "icon")
。 - MisterEd.frame(width: 50, height: 550)
修饰符。换句话说,地图显示比框架更大,而且修饰符不能将显示限制在此框中。 - cgold您可以在资源目录中使用 PDF 文件作为矢量图(在右侧检查器中选择单个比例并保留矢量数据)。 无法直接在资源目录中使用 SVG 文件,但是在 Xcode 11 中,您实际上可以将 SVG 文件用于符号。 Apple 具有关于如何创建自己的 SVG 符号的详细指南,请点击这里。