単色でパスを塗りつぶすのは簡単です。
CGPoint aPoint;
for (id pointValue in points)
{
aPoint = [pointValue CGPointValue];
CGContextAddLineToPoint(context, aPoint.x, aPoint.y);
}
[[UIColor redColor] setFill];
[[UIColor blackColor] setStroke];
CGContextDrawPath(context, kCGPathFillStroke);
赤一色ではなくグラデーションを描きたいのですが、うまくいきません。質問/回答: Gradients on UIView and UILabels On iPhone にリストされているコードを試しました
つまり:
CAGradientLayer *gradient = [CAGradientLayer layer];
[gradient setFrame:rect];
[gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor],
(id)[[UIColor whiteColor] CGColor], nil]];
[[self layer] setMasksToBounds:YES];
[[self layer] insertSublayer:gradient atIndex:0];
ただし、これは、これが含まれているビュー全体をグラデーションでペイントし、元のパスを覆い隠します。