如何在Xcode资产中使用.svg图像?

fdbelqdn  于 2023-06-24  发布在  其他
关注(0)|答案(5)|浏览(229)

我只能上传.png文件到assets文件夹吗?.svg文件出现错误。我想把它用于Image()组件。

6jjcrrmo

6jjcrrmo1#

您也可以在XCAssets中导入svg图像。转到XCAAssets,单击+按钮。Refer this image
点击导入并选择svg image。
现在要加载并显示该图像,请使用以下代码:

图片(uiImage:UIImage(名称:“imageName”)!)

vjrehmav

vjrehmav2#

您可以使用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) {

    }

}
blmhpbnm

blmhpbnm3#

我创建了一个简单的工具,它将SVG代码转换为SwiftUI的Shape对象。它目前非常有限(特别是它只支持直线和三次曲线,单路径SVG和填充一种颜色的形状),但您仍然可以将其用于简单的情况。
下面是link to the toolrepository,如果您想贡献一下并使其支持所有SVG特性。

igetnqfo

igetnqfo4#

您可以在资产目录中使用PDF格式的矢量(选择单一比例并在右侧的检查器中保留矢量数据)。你不能直接在资源目录中使用SVG,但是通过Xcode 11,你实际上可以将SVG用于符号。苹果有一个关于如何制作自己的SVG符号here的详细指南。

6g8kf2rb

6g8kf2rb5#

您可以像在SwiftUIXCode的最新版本中使用普通光栅图像一样使用svg图像。
1.将相关的svg添加(拖放)到XCAAssets中。

1.考虑勾选Preserve Vector Data选项。
1.将svg图像名称作为Image视图的name参数传递,它应该会呈现。

相关问题