Frage

Ich bin neu auf iPhone Entwicklung und zur Zeit mit erstellst ein Charting-Tool bin liebäugle ich für Silverlight entwickelt.

Derzeit wird ein Rechteck mit einem Gradienten zu ‚füllen‘ Ich verwende eine Bar in einem Diagramm darstellen. Ist es möglich, diese Gradienten zu animieren, so dass es seine Farbe ändert, wenn ein Benutzer die Bar in der Tabelle berührt.

Ich habe durch die Core Animation Führer von Apple sieht aber keine Eigenschaft sehen, die Steigungen zum Ziel hat. Ich nehme an, ich einen Übergang verwenden könnte zwischen zwei Rects verblassen, von denen meine Ausgang Steigung und die zweiter mit der ‚berühren‘ Version hat aber das würde bedeuten, offensichtlich mehrere rect Objekte für jeden Balken Zeichnung mit I zusätzlich Performace Gemeinkosten übernehmen.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ja, in der Tat können Sie animieren Gradienten mit Core Animation.

Die CAGradientLayer Klasse, die in 3.0 herauskam hat eine schöne API für Gradienten in eine Schicht Rendern und Animieren von Farbe und ändert sich die Farbe-Stop als auch.

Ich habe einen Beitrag zu dieser Klasse ein Weilchen zurück, zusammen mit einigem Beispielcode, der an der Unterseite verknüpft ist.

In der Probe animiere ich die Gradienten durch einen CABasicAnimation bauen, aber man kann die Änderung als auch implizit animieren, indem einfach die Farben Eigenschaft eine neue Reihe von Farben auf die Gradientenschicht der geben. Verwenden Sie implizite Animationen, wenn Sie einen Grund haben, nicht zu tun.

, dass Check-out und lassen Sie mich wissen, wenn Sie Fragen an den UI-spezifische haben Sie versuchen zu animieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top