1

私は3.1.3 SDKのiPhoneアプリを開発しています。QUARTZ 2Dで三角形を描く方法は?

私はこのコードで透明の塗りつぶしで1pxの黒のストロークを三角形を描くしようとしている:

CGContextMoveToPoint(ctx, position.X, position.Y - (size.height/2)); 
CGContextAddLineToPoint(ctx, position.X - (size.width/2), position.Y + (size.height/2)); 
CGContextAddLineToPoint(ctx, position.X + (size.width/2), position.Y + (size.height/2)); 
CGContextFillPath(ctx); 
CGContextSetLineWidth(ctx, 1.0); 
CGContextStrokePath(ctx); 
CGContextSetFillColorWithColor(ctx, [[UIColor clearColor] CGColor]); 

しかし、私は黒の黒三角を取得します。

私は間違っていますか?

+1

SDKの最新バージョンを使用する必要があります。それでも古いオペレーティングシステムをターゲットにすることはできます。 –

答えて

1

あなたは透明の塗りつぶしでパスを描画したい場合 - その後、あなたはそれを埋めるために必要はありません - それはあなたのCGContextFillPath方法が冗長であると思われるので、ちょうどストロークそれは時に引き分け、 - それを削除します。

CGContextMoveToPoint(ctx, position.X, position.Y - (size.height/2)); 
CGContextAddLineToPoint(ctx, position.X - (size.width/2), position.Y + (size.height/2)); 
CGContextAddLineToPoint(ctx, position.X + (size.width/2), position.Y + (size.height/2)); 
CGContextSetLineWidth(ctx, 1.0); 
CGContextStrokePath(ctx); 
+0

上記の例でctxとは何か –

+0

drawRect:メソッドで描画する現在のグラフィックコンテキスト(CGContextRef)への参照です。通常、UIGraphicsGetCurrentContext()関数を使用して取得します – Vladimir

関連する問題