iOS:使用CGContextAddLineToPoint绘制多行

时间:2012-09-17 11:46:28

标签: ios xcode cgcontext

我正在用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行

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

1 个答案:

答案 0 :(得分:1)

enter image description here

上面的代码工作正常,他们正在制作三条单独的行(所有的起点都相同(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);