2012-12-04 6 views

答えて

9
- (void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGPathRef path = CGPathCreateWithRect(rect, NULL); 
    [[UIColor redColor] setFill]; 
    [[UIColor greenColor] setStroke]; 
    CGContextAddPath(context, path); 
    CGContextDrawPath(context, kCGPathFillStroke); 
    CGPathRelease(path); 
} 

私はそれが別の呼び出しでストローク&塗りつぶしより任意の少ない冗長だと言うことができない、が...

+0

うーん...非常に本当、私はちょうど別の呼び出しで行きますよ私は考えます。ありがとう。 – chinabuffet

-1

CGContextDrawPathは、塗りと線の色をあらかじめ設定しておくと1つになります。

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColor(context, a); 
CGContextSetFillColor(context, b); 
CGContextDrawPath(context, rect) 
+8

うーん...私はヘッダファイルに表示さCGContextDrawPath' 'のシグネチャは、次のとおりです。' CGContextDrawPath(CGContextRefのC、CGPathDrawingModeモード) ' – chinabuffet

6

あなただけのラインスペースを節約するために探しているなら、あなたはあなたを定義することができます2つの呼び出しを作成してユーティリティクラスに配置する独自のメソッドです。

void strokeAndFill(CGContextRef c, CGRect rect) 
{ 
    CGContextFillRect(c, rect); 
    CGContextStrokeRect(c, rect); 
} 
関連する問題