首页 > 解决方案 > 在 Objective-C 项目中使用 SVG 路径

问题描述

我命令画一条复杂的线。我通过以下方式使用贝塞尔路径:

UIBezierPath* bezierPath = [UIBezierPath bezierPath];

CAShapeLayer *shapeView = [[CAShapeLayer alloc] init];
//And set its path:
[shapeView setPath:mybezierPath.CGPath];
//Finally add it:
[[self.view layer] addSublayer:shapeView];

如何从 SVG d 标签传递路径,例如:

d = M418.3,70c-0.2-4.3-1.1-8.4-2.4-12.2c-0.3,0.1-12.3,4.9-52.7,4.9c-40.8,0-51.5-4.9-51.5-4.9c-0.9,2.1-1.5,4.1-1.9,5.7c-1.9,8.3-2.8,23.5-2.5,28.2s1

到 mybezierPath 变量?

提前致谢

标签: objective-csvguibezierpath

解决方案


AppKit 或 UIKit 中没有默认的 SVG 解析器。这是因为UIBezierPathorNSBezierPath不能涵盖 SVG 可以描述的所有内容。

您可以搜索可以从 SVG 中使用的格式解析路径的 UIBezierPath 扩展(类别)。或者您可以编写自己的解析器。


推荐阅读