Animieren zwischen zwei Bezierpfadformen

Ich fand es schwierig, ein @ zu animierUIImageView zwischen zwei Zuständen: sein ursprünglicher Rechteckrahmen und eine neue Form, die mit einem @ erstellt wurUIBezierPath. Es werden viele verschiedene Techniken erwähnt, von denen die meisten bei mir nicht funktionierten.

Zunächst stellte sich heraus, dass die Verwendung der UIView-Blockanimation nicht funktionieren würde. Offensichtlich kann man keine Sublayer-Animationen in einem @ ausführeanimateWithDuration: Block. (sehenHie undHie)

Das übrigCAAnimation, mit den konkreten Unterklassen wieCABasicAnimation. Mir wurde schnell klar, dass man nicht von einer Ansicht animieren kann, die kein @ haCAShapeLayer zu einem, der es tut (sieheHie, zum Beispiel)

Und es können nicht nur zwei beliebige Formebenenpfade sein, sondern "Das Animieren des Pfads einer Formebene funktioniert garantiert nur, wenn Sie von" Gefällt mir "nach" Gefällt mir "animieren" (sieheHie)

With, dass an Ort und Stelle kommt die banaleren Probleme, wie was zu verwenden fürfromValue undtoValue (sollten sie ein @ seCAShapeLayer, oder einCGPath?), was soll die Animation hinzugefügt werden (daslayer, oder dermask?), etc

Es schien so viele Variablen zu geben; Welche Kombination würde mir die gesuchte Animation geben?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage