我正在制作一个图像编辑器,它可以创建不同形状的对象,例如圆形,三角形和正方形,也可以对其进行更新或删除。因此,我已使用CAShapeLayer创建形状对象。

现在,我还想在图像上画一条线,该线也可以更新或删除,因此我使用了bezierpath和CAShapeLayer创建该线,它工作正常。但是现在的问题是,当我想选择任何现有的线时,可以在靠近线工具的任何位置选择它,因为CAShapeLayer还会设置填充区域,该区域将从起点到终点都是一条直线。

我的问题是如何使用CAShapeLayer创建没有填充区域的行。

这是我创建行的代码:

CAShapeLayer *line = [CAShapeLayer layer];
// Using bezierpath to make line
UIBezierPath *linePath=[UIBezierPath bezierPath];

// Creating L with line

[linePath moveToPoint:point1];
[linePath addToPoint:point2];
[linePath addToPoint:point3];
line.path=linePath.CGPath;


// Configure the appearence of the line
line.fillColor = Nil;
line.opacity = 1.0;
line.strokeColor = [UIColor whiteColor].CGColor;

任何想法,将不胜感激。

最佳答案

你可以试试这个吗它对我的工作

    CAShapeLayer *line = [CAShapeLayer layer];
    UIBezierPath *linePath=[UIBezierPath bezierPath];
    [linePath moveToPoint:CGPointMake(startx, starty)];
    [linePath addLineToPoint:CGPointMake(endx, endy)];
    line.lineWidth = 10.0;
    line.path=linePath.CGPath;
    line.fillColor = shapecolor.CGColor;
    line.strokeColor = shapecolor.CGColor;
    [[self.view layer] addSublayer:line];

10-08 05:32