如何创建不同颜色的Bezier路径?

时间:2017-01-13 04:48:04

标签: ios objective-c uibezierpath

我已经使用def found_location(self, data): # reader = codecs.getreader("utf-8") data2 = json.loads(data) # data2 = reader(data).json() print(data2) cities = ['{} ({})'.format(data2['name'],data2['sys']['country'])] self.search_results.item_strings = cities 对象创建了用于创建随机路径的示例演示。 我知道我曾经问过同样类型的问题,但是我无法解决这个问题。

代码

UIBezier

1)我从选择器视图中选择了颜色。

现在我的问题是,

- >当我从选择器中选择颜色时,它会改变以前的所有线条颜色。

(显示我在所有随机路径中选择的最后一种颜色。)

--->我的要求是我使用不同颜色的随机路径。

请帮助我,我很困惑。

谢谢。

1 个答案:

答案 0 :(得分:1)

将此代码写入您想要创建路径的位置..

//path 1
UIBezierPath *linePath = [[UIBezierPath alloc] init];
[linePath moveToPoint:CGPointMake(100, 100)];
[linePath addLineToPoint:CGPointMake(275, 100)];

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.fillColor = [UIColor clearColor].CGColor;
shapeLayer.lineWidth = 2;
shapeLayer.lineJoin = kCALineJoinRound;
shapeLayer.lineCap = kCALineCapRound;
shapeLayer.path = linePath.CGPath;
[self.view.layer addSublayer:shapeLayer];

//Path 2
UIBezierPath *verticalLinePath = [[UIBezierPath alloc] init];
[verticalLinePath moveToPoint:CGPointMake(100, 200)];
[verticalLinePath addLineToPoint:CGPointMake(275, 200)];
CAShapeLayer *horizontalLayer = [CAShapeLayer layer];
horizontalLayer.strokeColor = [UIColor greenColor].CGColor;
horizontalLayer.fillColor = [UIColor clearColor].CGColor;
horizontalLayer.lineWidth = 2;
horizontalLayer.lineJoin = kCALineJoinRound;
horizontalLayer.lineCap = kCALineCapRound;
horizontalLayer.path = verticalLinePath.CGPath;
[self.view.layer addSublayer:horizontalLayer];

//Path
UIBezierPath *path3 = [[UIBezierPath alloc] init];
[path3 moveToPoint:CGPointMake(100, 300)];
[path3 addLineToPoint:CGPointMake(275, 300)];
CAShapeLayer *horizontalLayer3 = [CAShapeLayer layer];
horizontalLayer3.strokeColor = [UIColor blueColor].CGColor;
horizontalLayer3.fillColor = [UIColor cyanColor].CGColor;
horizontalLayer3.lineWidth = 2;
horizontalLayer3.lineJoin = kCALineJoinRound;
horizontalLayer3.lineCap = kCALineCapRound;
horizontalLayer3.path = path3.CGPath;
[self.view.layer addSublayer:horizontalLayer3];

此代码的输出为 - >

it looks like this