2

我正在用drawrect写这段代码

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);
CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor);


CGContextMoveToPoint(context, 502,530);
CGContextAddLineToPoint(context, x2, y2);


CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x3, y3);

CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x4, y4);

NSLog(@"%d,%d--%d,%d--%d,%d",x2,y2,x3,y3,x4,y4);



CGContextStrokePath(context);

但是这段代码总是只画两条不正确的线它从不画第三条线当我给出静态值而不是 x 和 y 代码在三行时工作正常当我 NSLOG x 和 y 我得到正确的所需值但没有根据线绘制为此,我想用不断变化的坐标绘制 4-5 条线

请告诉我哪里出了问题或解决此问题的任何其他替代方法

4

1 回答 1

2

在此处输入图像描述

上面的代码运行良好,它们制作了三行单独的行(所有(502、530)的起点相同)。我认为你给两个点的结束位置(如 x3,y3 或 x4,y4)是相同的方向,这就是为什么你只得到两条线,如果你想区分这些线,你可以用不同颜色的线像...

int x2, y2, x3, y3,x4, y4;
x2 = 100;
y2 = 100;
x3 = 200;
y3 = 200;
x4 = 200;
y4 = 50;

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);

// line 1
CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor);    
CGContextMoveToPoint(context, 502,530);
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);

// line 2
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x3, y3);
CGContextStrokePath(context);

// line 3
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x4, y4);
CGContextStrokePath(context);

NSLog(@"%d,%d--%d,%d--%d,%d",x2,y2,x3,y3,x4,y4);
于 2012-09-17T12:54:31.173 回答