カスタム コントロールを作成していますが、クライアントが「グラデーションが欲しい」と言うまでは問題ありませんでした。だからここにいます。角度を描き、グラデーションカラーで塗りつぶす必要があります。私の以前のコードはこれでした:
- (void)drawRect:(CGRect)rect{
CGContextBeginPath(context);
CGContextMoveToPoint(context, self.center.x, self.center.y);
CGContextAddArc(context, self.center.x, self.center.y, radius, radians(180), radians(minValue - 180), 0);
CGContextClosePath(context);
CGContextSetFillColorWithColor(context, gray);
CGContextFillPath(context);
}
CGContextAddArc() 関数を使用すると、角度を描画して CGContextSetFillColorWithColor() 関数でペイントし、パスを閉じて出来上がりです。しかし今、グラデーションでペイントする必要があります。CGContextDrawRadialGradient を使用する必要があるかもしれないことはわかっていますが、円弧で使用する方法がわかりません。StackOVerFlow の他の質問とドキュメントを読んでこれを理解しようとしましたが、それを取得できません。