曲線が完全に回転して結合されて完全な円になり、円の輪郭だけが塗りつぶされるようにしたいと思います。これは数秒間にアニメーション化する必要があります。iPhone:円のアニメーションになるまで曲線を描く
誰でも正しい方向に向けることができますか?私はすでにsimilar questionにこれを頼んだのですが、間違って言いましたので、みんなが私の意図したことを理解するのに苦労し、質問の海に迷ってしまいました。任意のヘルプ
[編集]
ため
多くのおかげで私は現在、サブクラス化のUIViewとオーバーライドのdrawRectです。塗りつぶされた円を描画するコードが見つかりましたが、ストロークが必要です。
- (void)drawRect:(CGRect)rect {
// Drawing code
CGRect allRect = self.bounds;
CGRect circleRect = CGRectInset(allRect, 2.0f, 2.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 0.1f); // translucent white
CGContextSetLineWidth(context, self.lineWidth);
CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width/2, allRect.size.height/2);
CGFloat radius = (allRect.size.width - 4)/2;
CGFloat startAngle = - ((float)M_PI/2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); // white
CGContextMoveToPoint(context, center.x, center.y);
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextClosePath(context);
CGContextFillPath(context);
}
[編集#2]
私はすべてのフィルの参照を削除しますが、今のは何も描画しないようにコードを変更:(任意のアイデア?
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGRect allRect = self.bounds;
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetLineWidth(context, 5);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width/2, allRect.size.height/2);
CGFloat radius = (allRect.size.width - 4)/2;
CGFloat startAngle = - ((float)M_PI/2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextStrokePath(context);
}
[編集#3]ソリューション
右のジックヘッドのように感じました!ストロークの色の値が初期化されず、線が描画されていたが、明らかにそれを見ることができないという問題がありました。
ご協力いただきありがとうございます! – bennythemink