Wie kann ich feststellen, wann ein UIDynamicAnimator in Ruhe ist?

8

Ich spiele mit UIKitDynamics und es ist wirklich ordentlich. Derzeit habe ich diesen Code:

%Vor%

Es ist ein einfaches Snap-Verhalten, und es funktioniert ganz gut. Aus verschiedenen Gründen möchte ich jedoch wissen, wann das System in einen Ruhezustand übergeht - d. H., Alles hört auf, sich zu bewegen. Mir geht es entweder mit einer Eigenschaft auf dem Animator oder einer Delegate-Methode.

Wie kann ich das tun?

    
Undo 08.03.2014, 00:49
quelle

2 Antworten

15

Nach etwas mehr stochern scheint das UIDynamicAnimatorDelegate tut dies - das - (void)dynamicAnimatorDidPause:(UIDynamicAnimator *)animator scheint aufgerufen zu werden, wenn sich das System in einem Ruhezustand befindet.

%Vor%

und

%Vor%

scheint zu funktionieren - resume wird protokolliert, wenn die Animation startet, und pause wird innerhalb einer Sekunde der gestoppten Animation protokolliert.

Darüber hinaus running Eigenschaft auf dem UIDynamicAnimator selbst scheint die Aufrufe der Delegate-Methoden zu spiegeln - es ist 1 , wenn willResume aufgerufen wird, und es ist 0 , wenn didPause wird aufgerufen.

    
Undo 08.03.2014, 00:52
quelle
1

Der Animator hat eine Eigenschaft "running", die Ihnen sagt, wenn der Animator in Ruhe ist.

  

Die Ansichten, die mit den Verhaltensweisen eines Animators verknüpft sind, können die Position ändern oder die Transformation nur ändern, wenn der Animator ausgeführt wird. Zur Optimierung kann iOS einen Animator anhalten und anschließend neu starten. Verwenden Sie diese Methode, wenn Sie überprüfen müssen, ob Ihre Ansichten derzeit Änderungen an Position oder Transformation unterliegen.

    
Axy 26.05.2016 13:28
quelle

Tags und Links