2012-04-26 8 views
2

パスを赤で塗りつぶしたい。これは私のコードです:特定の色のパスを塗りつぶす

CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f}; 
CGContextBeginPath(c); 
CGContextSetStrokeColor(c, red); 
CGContextSetFillColorWithColor(c, [UIColor whiteColor].CGColor); 
CGContextMoveToPoint(c, 10, 10); 
CGContextAddLineToPoint(c, 20, 20); 
CGContextAddLineToPoint(c, 20, 40); 
CGContextAddLineToPoint(c, 40, 20); 
CGContextAddLineToPoint(c, 10, 10); 
CGContextStrokePath(c); 
CGContextFillPath(c); 

私はCGContextSetFillColor()CGContextFillPath()を使用する必要がありますが、それは働いていないことを知っています。

これを正しく行うにはどうすればよいですか?

+0

はあなたが記入しようとして使用しているコードを提供することができますパス? –

+0

@craig確かに、私は最初の投稿 –

+0

を編集しました。最初の投稿で答えてください。 –

答えて

3

私の場合は回答は次のとおりです。迅速な使用のために

CGContextRef context = UIGraphicsGetCurrentContext(); 

//set fill pattern 
UIColor *patternRed = [UIColor colorWithPatternImage:[UIImage imageNamed:@"patternRed.png"]]; 

CGContextSetLineWidth(context, 1.0); 
CGContextSetFillColorWithColor(context, patternRed.CGColor); 

CGMutablePathRef pathRef = CGPathCreateMutable(); 

CGPathMoveToPoint(pathRef, NULL, 0, self.frame.size.height); 
for (int i = 0; i<255; ++i) { 
    CGPathAddLineToPoint(pathRef, NULL, stepX*arrayX[i], self.frame.size.height - (arrayYRed[i]*stepY)); 
} 
CGPathAddLineToPoint(pathRef, NULL, stepX*255, self.frame.size.height); 
CGContextAddPath(context, pathRef); 
CGContextFillPath(context); 

CGPathRelease(pathRef); 
0

上記の例で線幅を設定していないため、ここではrectの左側に線を引く例を示します。 drawRect関数から直接取ら

CGContextRef context = UIGraphicsGetCurrentContext(); 
[[UIColor whiteColor] setFill]; 
CGContextFillRect(context, rect); 

CGContextSetLineWidth(context, 2); 
CGFloat gray[4] = {0.5f, 0.5f, 0.5f, 1.0f}; 
CGContextSetStrokeColor(context, gray); 

// left 
CGContextMoveToPoint(context, 0, 0); 
CGContextAddLineToPoint(context, 0, CGRectGetHeight(rect)); 

CGContextStrokePath(context); 
1

CGContextSetFillColorWithColor(context, UIColor.blackColor().CGColor) 
CGContextFillPath(context) 
+1

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – gunr2171

+0

私は質問が、塗りつぶしの色を変更する正しい方法を尋ねていると思ったので、これらは2つの単純なコード行です。私は何を説明する必要がありますか? – ergunkocak

関連する問題