Gibt es eine Möglichkeit, eine Kern-Animation anzuhalten und später wieder aufzunehmen?

8

Ich habe mehrere Kernanimationen zur gleichen Zeit. Sie alle haben einen Kontext und eine Animations-ID, wobei der Kontext das Objekt ist, das animiert wird (UIImageView-Objekte). Ich möchte sie anhalten, so dass die Animation nur vorübergehend stoppt, und wenn dann einige Dinge erledigt sind, setze sie fort, um sie abzuschließen. Diese Dinge passieren nur bei sehr schnellen Scrollbewegungen in einem UIScrollView. Ich möchte die Leistung verbessern, indem ich alle laufenden Animationen stoppe, aber nicht die Scroll-Ansicht. Ich habe eine benutzerdefinierte Animation von contentOffset für diese Bildansicht implementiert.

    
Thanks 30.05.2009, 15:44
quelle

3 Antworten

18

Sie können Ebenenanimationen pausieren, indem Sie die Geschwindigkeit der Animation auf null setzen. Weitere Informationen finden Sie unter die Animation eines Ebenenbaums .

    
Douglas 15.08.2010 18:20
quelle
5

Für alle, die auf der Suche sind, können Sie Animationen anhalten und fortsetzen:

Ссылка

    
Dermot 28.03.2012 10:19
quelle
4

Der einzige Weg, wie ich das verstanden habe, ist folgendes.

Für jede Ansicht, die Sie nicht mehr animieren möchten:

Setzen Sie den Rahmen der Ansicht auf die Präsentationsschicht

Entfernen Sie alle Animationen aus dieser Ansicht

Führen Sie Ihren Bildlauf durch

Animationen neu berechnen

Fügen Sie der Ansicht neue Animationen hinzu

Ich weiß, dass es nicht das ist, was du hören willst, aber es ist nicht so schlimm wie es klingt. Eine gute Möglichkeit, die Ansichten zu verfolgen, die Sie anhalten möchten, besteht darin, ihnen ein vorgegebenes Tag zu geben.

Um Animationen zu entfernen:

[myView.layer removeAllAnimations]

[myView.layer removeAnimationForKey: @ "theAnimationKey"]

    
Corey Floyd 30.05.2009 18:53
quelle