ios – 使用CAShapeLayer对象与Bezierpath绘制一条线

前端之家收集整理的这篇文章主要介绍了ios – 使用CAShapeLayer对象与Bezierpath绘制一条线前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作一个图像编辑器,可以创建不同的形状对象,如圆形,三角形和方形,也可以更新或删除.所以我使用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];

猜你在找的iOS相关文章