2016-05-25 24 views
0

Ich habe eine OSX-App, bei der der Benutzer mit einer Ansicht interagiert, indem er Gesten schwenken, skalieren und drehen kann. Ich handle das, indem ich die View-Transformation manipuliere, die gut funktioniert.Sollte ich CoreAnimation verwenden, um eine komplexe Ansicht während Benutzergesten schnell zu verschieben?

Unter bestimmten Umständen kann die Zeit, die zum Neuzeichnen der Ansicht benötigt wird, die Interaktion etwas weniger als reibungslos gestalten. Daher möchte ich im Verlauf einer Geste (z. B. einer UIRotationGesture) einen Kompromiss zwischen Geschwindigkeit und Qualität eingehen.

Insbesondere möchte ich dem Benutzer während der Geste eine gedrehte und skalierte Bitmap-Version des Inhalts anzeigen, die ich dann nach Abschluss der Geste durch den richtig neu gezeichneten Inhalt ersetzen kann.

Ich habe angefangen, mit CoreAnimation zu experimentieren und es scheint vielversprechend, aber bevor ich zu weit gehe, würde es helfen zu wissen, ob ein CALayer eine gute Grundlage ist, um das zu erreichen, was ich versuche machen. Ich denke, ich brauche wirklich nur die Fähigkeit, Inhalt in einer Bitmap zu erfassen und dann in einer gedrehten und skalierten Form anzuzeigen - ich brauche keine "Animations" -Funktionen wie Frame-für-Frame-Interpolation zwischen einem Start- und Endzustand.

Antwort

0

OK, nach ein paar Tagen habe ich erreicht, was ich vorhatte - und ich kann bestätigen, dass ja, CoreAnimation war ein guter Weg, um es zu nähern.

Es war eine interessante Reise und ich lernte eine Menge nützlicher Dinge auf dem Weg.

+0

Zu den Dingen, die ich gelernt habe, war, dass man, während man die Ebene einer Layer Backed View in OSX nicht direkt manipulieren muss, * eine Unterschicht hinzufügen und über die 'view.layer! .contents' - und dann wandle dich weg zu deinem Herzen Inhalt ... –