iOS的一个新手问题,刚开始学习Core Graphics,但我仍然不确定它是如何集成到实际视图中的
所以我有一个创建 CGLayer ref 的方法,在其上绘制一些贝塞尔曲线,然后返回 CGLayer;这是我的程序的一个非常精简的版本:
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGLayerRef layer = CGLayerCreateWithContext(ctx, CGSizeMake(300.0,300.0), NULL);
CGContextRef layerCtx = CGLayerGetContext(layer);
然后我添加了一些通过解析 SVG 文件动态生成的贝塞尔填充。
我已经验证了 SVG 正在被正确解析,我正在使用此代码http://ponderwell.net/2011/05/converting-svg-paths-to-objective-c-paths/来解析路径说明(从路径标签的 d 参数)到 UIBezierPath 对象
所以我从创建填充开始
CGColorRef color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;
CGContextSetFillColorWithColor(layerCtx, color);
然后添加 UIBezierPath
SvgToBezier *bezier = [[SvgToBezier alloc] initFromSVGPathNodeDAttr:pathAttr rect:CGRectMake(0, 0, 300, 300)];
UIBezierPath *bezierPath = bezier.bezier;
CGContextAddPath(layerCtx, bezierPath.CGPath);
CGContextDrawPath(layerCtx, kCGPathFill);
最后我像这样返回 CGLayerRef
return layer;
我的问题:现在我有了这个图层引用,我想将它绘制到 UIView (或任何类型的对象最好绘制到)
最终目标是让图层显示在 UITableViewCell 中。
此外,我上面描述的方法存在于我从头开始创建的一个类中(它继承自 NSObject)。有一个单独的方法使用此方法将层引用分配给类实例的属性。
我将从连接到我的表视图的视图控制器创建这个实例。然后希望将图层添加到“cellForRowAtIndexPath”方法中的 UITableView 单元格。
我希望我包含了所有相关信息,非常感谢您的帮助。
干杯