iOS: Wie einen Kreis zu zeichnen Schritt für Schritt mit NSTimer
Ich würde gerne einen Kreis zu zeichnen, der ohne Füllung (nur Grenze des Kreises) Schritt für Schritt (wie animierte timer). 1 spin ist gleich 1 Tag (24 Stunden). Ich weiß wirklich nicht, was zu tun ist.
Schritte, die ich gemacht habe
1) ich habe versucht https://github.com/danielamitay/DACircularProgress (es ist zu weit Linie des Fortschritts)
2) ich habe versucht einen Kreis zu zeichnen, mit vielen Bögen.
Kannst du mir ein paar code bitte. Ich wirklich verwirrt. Vielen Dank im Voraus.
BEARBEITEN
Ich verwenden möchte, NSTimer, weil ich eine Schaltfläche, die der Benutzer zu stoppen drawning einen Kreis. Wenn der Benutzer eine Taste Antippen wieder - drawning weiter.
- Ist das der Punkt, wo ich sagen sollen: "GAH! Animieren mit Timer?!" (Ich meine nicht unhöflich zu sein, es ist einfach das falsche Werkzeug für den job, und ich sehe es verwendet wird, falsch, ziemlich viel)
- Ich habe gerade bearbeitete meine Frage. Ich habe Hinzugefügt, weitere details. Ich möchte Sie, mir zu helfen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ich tun würde, um einen Pfad zu erstellen, der einen Kreis und verwenden, die mit einem CAShapeLayer und animieren die strokeEnd ähnlich zu dem, was Ich habe in dieser Antwort.
Es würde in etwa so Aussehen (habe ich aber nicht diesen code ausführen, so kann es sein, Tippfehler und andere Fehler):
Nur beachten, dass sowohl der Weg und die Form-Ebene eine position hat, so dass der Kreis Pfad sollte relativ zum Ursprung definiert, die Form Schichten frame. Es könnte sein, klarer zu definieren, die die erste Schicht Form, und erstellen Sie ein oval innerhalb seiner Grenzen:
drawAnimation.duration = 10.0;
bei mir nicht funktioniert, jedes mal ist es anders. E. g. 10.0 entspricht 11-12 SekundenWenn DACircleProgressgeben Sie den link-Beschreibung hier ansonsten funktioniert für Sie, wie es aussieht, können Sie ganz einfach die Linienstärke festlegen.
Als Gegensatz zu haben ein einfaches
lineWidth
type-Eigenschaft, so scheint es dem Autor, die Bibliothek legt die Dicke basierend auf einem Verhältnis zu dem radius des Kreises. Diese besteht, wie diethicknessRatio
Eigenschaft der Klasse. Zum Beispiel, wenn Ihr radius ist 40, dann die EinstellungthicknessRatio
auf 0,025 nachgeben sollten eine Linienstärke von 1. Diese Bibliothek scheint einfach und gut durchdacht - betrachten Sie es, oder daraus zu lernen.Den default auf 0,3 gesetzt, so dass ein Kreis mit einem radius von 40 wäre ein Fortschritt Strichstärke von 12. Das ist wahrscheinlich das, was Sie sahen.
Glück!