2009-07-22 7 views
23

Dokumentacja nie mówi zbyt wiele o tym, co to technicznie robi.Co dokładnie robi fillMode?

fadeInAnimation.fillMode = kCAFillModeForwards; 

Nie widzę tego efektu. Mam widok z ustawieniem alfa na 0.0. Potem zaniosę to. Ale kiedy odkomentuję linię okołoh, nic się nie zmieni. To samo zachowanie. Chciałbym zrozumieć, co naprawdę robi to fillMode.

Odpowiedz

43

Z CAMediaTiming protocol documentation:

Określa, czy odbiornika prezentacja jest zamrożone lub usunięty raz jej aktywny okres zakończył.

Określa, co dzieje się na końcu animacji. Domyślnie jest ustawiony na kCAFillModeRemoved, co oznacza, że ​​zmiany animacji są cofane po zakończeniu animacji. Jeśli przełączysz ją na kCAFillModeForwards, zmiany spowodowane przez animację będą się kręcić.

Pamiętaj, że prawdopodobnie będziesz musiał ustawić właściwość removedOnCompletion na NIE, aby zapobiec usunięciu animacji, co spowodowałoby, że to ustawienie byłoby nieskuteczne.

+0

Wielką wyjaśnienie! Tak, ustawiłem removeOnCompletion na NIE. Dlatego nie widzę żadnych zmian w fillMode, prawda? Dlaczego nazywa się to "fillMode"? Czy więc wewnętrznie jest to utrzymanie nowych obliczonych parametrów po wszystkich procedurach interpolacji animacji? – Thanks

+1

Co to jest 'removedOnCompletion', jeśli' fillMode' wykonuje zadanie? – jowie

+1

@jowie - To zapobiega usunięciu animacji jako całości po jej zakończeniu. Tryb fillMode blokuje go tylko do stanu końcowego, ale jeśli zostanie ustawiony, aby został usunięty po zakończeniu, ustawienie fillMode nie będzie miało znaczenia. –

2

podam mu bardziej sprecyzować odpowiedź:
chociaż w zachodzącym animacji za fillMode właściwość kCAFillModeForwards (lub kCAFillModeBoth) wygląd i jednocześnie ustawienie removedOnCompletion do NO może utrzymać warstwę w jego ostatecznego statusu kiedy animacja zakończeniu ale to użycie fillMode nie jest zaprojektowane w ten sposób. i faktycznie zaszkodzić, jeśli masz inne animacja dodać do tego samego keyPath

(nawiasem mówiąc, prawidłowe podejście do animacji keep stanie końcowym jest zmiana wartości nieruchomości pasujące do ostatniej klatki animacji.)

co fillModenaprawdę korzystać jest w związku z animacji dziecięcej w zgrupowane animacji, dzięki czemu można określić specyficzne animacji dziecięcej w pożądanym stanie