iPhone: Zeichnen Sie eine gekrümmte Linie, bis es zu einer Kreis-animation

Möchte ich zeichnen Sie eine gekrümmte Linie, bis es eine volle umdrehung und schließt sich zu einem vollständigen Kreis, nur der Kreis Umriss, nicht gefüllt. Dies muss animiert werden, über eine Anzahl von Sekunden.

Kann jemand mich in die richtige Richtung? Ich habe schon gefragt, einer ähnliche Frage in diesem, aber ich formulierte es falsch, so dass jeder hatte eine harte Zeit zu verstehen, was ich meinte, und so verlor sich im Meer der Fragen.

Vielen Dank für jede Hilfe

[Bearbeiten]

Ich bin derzeit auf der sub-classing UIView und überschreiben drawRect. Ich fand code zum zeichnen eines gefüllten Kreises, aber ich benötigen nur die Kontur.

- (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);
}

[edit #2]

Änderte ich den code, um entfernen Sie alle die Füllung Verweise aber jetzt ist es keine Zeichnung, nichts 🙁 irgendwelche Ideen?

- (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);
}

[edit #3] - Lösung

Recht, ich fühle mich wie ein rechter Schwachkopf! das problem war, dass der Schlaganfall Farbe Werte wurden nicht initialisiert werden, was bedeutet, dass line wurde draw, aber natürlich konnte es nicht sehen!!

InformationsquelleAutor bennythemink | 2011-11-04
Schreibe einen Kommentar