問題の潜在的な部分の1つは、のfill
代わりにを使用していたことですstroke
。
に変更[path fill]
すると[path stroke]
、次のようになります。
CGPoint origin = CGPointMake(100, 20);
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:origin];
[path addLineToPoint:CGPointMake(origin.x - 10, origin.y - 20)];
[path addLineToPoint:CGPointMake(origin.x - 10, origin.y + 20)];
[[UIColor redColor] set];
// [path fill];
[path stroke];

これは、あなたがその点で何を意図していたのかという疑問を提起しますorigin
。これは、原点がどのように使用されるかという従来の感覚ではなく、実際には矢印のポイントに変換されます(描画されるオブジェクトの左上隅を意味します)。
の意味を維持したい場合origin
は、コードを次のように変更する必要があります。
CGPoint origin = CGPointMake(100, 20);
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(origin.x - 20, origin.y - 20)];
[path addLineToPoint:origin];
[path addLineToPoint:CGPointMake(origin.x - 20, origin.y + 20)];
path.lineWidth = 4.0;
[[UIColor redColor] set];
[path stroke];
または、の従来の意味を使用する場合はorigin
、次を使用できます。
CGPoint origin = CGPointMake(100, 20);
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:origin];
[path addLineToPoint:CGPointMake(origin.x + 20, origin.y + 20)];
[path addLineToPoint:CGPointMake(origin.x, origin.y + 20 * 2)];
path.lineWidth = 4.0;
[[UIColor redColor] set];
[path stroke];
これにより、次のようになります。
