在AI里面做好的svg图片,导出上传至iconfont,显示有问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AI里面做好的svg图片,导出上传至iconfont,显示有问题相关的知识,希望对你有一定的参考价值。
应该是做的svg图片不知道哪里有问题,求指教!
我做的时候,已将对象扩展,上面的白色是用钢笔画的路径,
@font-face
font-family: 'iconfont'; /*自定的字体名称*/
src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff') format('woff'), /* chrome、firefox */
url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, android, ios 4.2+*/
url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
参考技术A 把白色钢笔路径的区域,做成在灰色底上镂空的。
如何在 SwiftUI 中使用 .svg 图片
【中文标题】如何在 SwiftUI 中使用 .svg 图片【英文标题】:how to use .svg images in SwiftUI 【发布时间】:2019-10-01 23:09:05 【问题描述】:我只能将 .png 文件上传到 assets 文件夹吗?我收到 .svg 文件的错误。 我想将它用于 Image() 组件
【问题讨论】:
我还建议您查看 PaintCode。它将允许导入 SVG 文件并将它们导出为代码,可用于生成可缩放的图像或根据您的需要绘制代码 【参考方案1】:您可以使用 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)
【讨论】:
资产中的数据集对我不起作用 - 将文件复制到Resources/
。一个小问题——如果文件名是icon.svg
,那么你想说SVGImage(svgName: "icon")
执行此操作时(Xcode 12.5,iOS 部署目标 14.5),MyView 将忽略 .frame(width: 50, height: 550)
修饰符。换句话说,地图显示大于框架,并且修改器不会将显示限制在此框内。
@cgold 它仍然忽略给定的帧。你找到解决办法了吗?【参考方案2】:
我创建了一个简单的工具,它将 SVG 代码转换为 SwiftUI 的 Shape 对象。目前它非常有限(特别是它只支持直线和三次曲线、单路径 SVG 和用一种颜色填充的形状),但您仍然可以在简单的情况下使用它。
这里是 link to the tool 和 repository,如果您想贡献并使其支持所有 SVG 功能。
【讨论】:
@Will 如果您使用提供的 SVG 代码在存储库中创建问题,我将能够解决。这只是支持您正在使用的 SVG 功能的问题,但我还没有实现,但如果我有 SVG 代码示例,很容易修复。 它可以工作,但它会在框架中留下一个空间。它不拥抱框架 我猜那是你使用的 SVG,但如果可以的话,请在 GitHub 上用你使用的 SVG 创建一个问题!然后我就可以修复它了:) 那个在线工具非常有用。谢谢!【参考方案3】:您可以将 pdf 用于资产目录中的矢量(选择单一比例并在右侧的检查器中保留矢量数据)。您不能直接在资产目录中使用 SVG,但在 Xcode 11 中,您实际上可以将 SVG 用于符号。 Apple 提供了有关如何制作自己的 SVG 符号的详细指南here。
【讨论】:
我收到一个错误。显然它不满足要求,因为页面告诉我您已链接。我下载了这个 svg 包。我不知道 Adobe Illustrator 什么的。。【参考方案4】:您也可以在 XCAssets 中导入 svg 图像。 转到 XCAssets,单击 + 按钮。 Refer this image
点击导入并选择 svg 图片。
现在使用下面的代码加载和显示该图像:
Image(uiImage: UIImage(named: "imageName")!)
【讨论】:
Xcode 是否将 svg 转换为 png/jpeg?以上是关于在AI里面做好的svg图片,导出上传至iconfont,显示有问题的主要内容,如果未能解决你的问题,请参考以下文章