Wie kann ich Core Animation auf Animator Proxy während eines Anrufs auslösen resizeSubviewsWithOldSize?

StackOverflow https://stackoverflow.com/questions/114970

  •  02-07-2019
  •  | 
  •  

Frage

Ich habe einige NSViews, die ich in einem von zwei Layouts in Abhängigkeit von der Größe meines Fensters bin setzen.

Ich bin Anpassung des Layouts, wenn die entsprechende Super die resizeSubviewsWithOldSize Methode erhält.

Dies funktioniert, aber ich möchte die Änderung animieren. So natürlich habe ich versucht, den Aufruf den Animator-Proxy, wenn ich die neuen Rahmen gesetzt, aber die Animation nicht ausgeführt werden, während der Benutzer noch schleppt. Wenn ich die Maustaste loslassen, bevor die Animation zu tun geplant ist, kann ich das hintere Ende der Animation sehen, aber nichts bis dahin. Ich habe versucht, sicher kCATransactionDisableActions machen auf NO gesetzt wurde, aber das hat nicht geholfen.

Ist es möglich, eine neue Animation zu starten und tatsächlich haben sie während der Resize laufen?

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie dies leicht tun können, weil CA Animationen über einen Timer ausgeführt werden, und der Timer wird während der Runloop Modi nicht ausgelöst, die aktiv sind, während die Maus gezogen wird.

Wenn Sie die Runloop steuern können wie die Maus gezogen wird, spielen, um mit dem Runloop Modi. Das wird damit es funktioniert. Ich glaube nicht, dass Sie es auf der CA Seite ändern können.

Andere Tipps

Das ist wirklich keine Antwort, aber ich würde davon abraten, etwas Animieren beim Ziehen ein Fenster zu ändern. Der Bildschirm ist bereits (aus dem Fenster bewegt) Animieren -. Weitere Animationen werden wahrscheinlich visuell verwirrend und Fremd sein

Coreanimation Effekte werden am besten verwendet, von einem bekannten Zustand zu einem anderen zu bewegen - zum Beispiel, wenn ein Einstellungsfenster eine neue Scheibe Inhalt begleiten wird Ändern der Größe, und Sie wissen, sowohl die alten und neuen Größen, oder wenn Sie ein Objekt verblassen oder in (oder beides). Doing Animation, während das Fenster wird wird Ändern der Größe optisch verwirrend sein und es schwieriger für den Benutzer immer die Größe des Fensters konzentrieren machen, wo sie es sein will.

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