2011-01-21 4 views
7

Wiele osób mówi o zachowaniu obiektu CABasicAnimation po jego użyciu.Jak ponownie użyć CABasicAnimation, gdy nie zostanie ona usunięta po zakończeniu?

tak ustawiając

removedOnCompletion = NR

obiektu animacji wciąż przymocowany do warstwy przy animacji jest zakończona. Jak ponownie uruchomić tę animację bez tworzenia nowego CABasicAnimation?

Jaki jest cel utrzymywania tego obiektu w pobliżu? Jedyną zaletą, jaką znam, jest to, że możemy ustawić removeOnCompletion = NO i ustawić kCAFillModeForwards tak, aby Core Animation nie odwracała reprezentacji wizualnej z powrotem do wartości modelu w CALayer.

Ale jak ponownie użyć animacji, tak jak wszyscy mówią?

Odpowiedz

0

ten pracował dla mnie, ale jestem pewien, że ktoś powie mi wartość jest już zapisany w kluczu ..

Kiedy stworzył warstwę i przypisany do niego animację ustawić animację wartość kluczowa powiązana z warstwą.

w tym przykładzie layersActive to Animated CABasic, a MyAnimatedLayer to CALayer.

[myAnimatedLayer setValue:layersCurrentAnimation forKey:@"basicAnimation"] 

wtedy jeśli animacja była zatrzymać chciałbym uzyskać wartość animacji się z warstwy i ponownego uruchomienia go

CABasicAnimation *thisAnimation = [myAnimatedLayer valueForKey:@"basicAnimation"]; 

[myAnimatedLayer addAnimation:thisAnimation forKey:nil];