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

しかし、このコードは常に正しくない 2 行だけを描画します 3 行目は描画しません x と y の代わりに静的な値を指定すると、コードは 3 行で正常に動作します NSLOG x と y を実行すると、適切な目的の値が得られますが、線は描画されません継続的に変化する座標で4〜5本の線を描きたい

どこが間違っているのか、またはこの問題を解決するための他の方法を教えてください

4

1 に答える 1

2

ここに画像の説明を入力

上記のコードは正常に動作しており、3 つの個別の行を作成しています (開始点はすべて (502, 530) で同じです)。2 つの点 (x3、y3 または x4、y4 など) の終了位置を指定していると思いますが、同じ方向です。そのため、2 本の線のみを取得しています。これらの線を区別したい場合は、次のように線を異なる色にすることができます。 ...

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 に答える