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