2012-09-17 42 views
1

我寫這段代碼的drawRect的iOS:畫多條使用CGContextAddLineToPoint

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線與continuesly改變座標正確的期望值 但線路未按

請告訴我在哪裏,我錯了 或任何其他替代解決這個問題

+0

是x2,y2等CGFloat值? –

+0

它們是int值Int會不會起作用 –

+0

但是使它們CGfloat也不能正常工作 –

回答

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); 
+0

這就是我的情況 當我給硬編碼的靜態座標i正在繪製三條線 但是,當我想要連續更改行並且x和y的值連續更改時,我不期望得到結果 我只繪製了兩條線我已檢查x和y的值是否正確並且不重疊 有沒有其他方法可以繪製3-4行 –

+0

您可以發佈您的代碼,如何更改值。 –