2008-09-06 9 views

Odpowiedz

1

Jeśli możesz wprowadzić zmiany samodzielnie, a klasa, której używasz, jest niestandardowa, możesz dodać metodę setProgress: (float) f do klasy i użyć CA do jej animacji, a następnie zmodyfikować pożądane właściwości zgodnie z potrzebami funkcja f.

Wystarczy zrobić

[[someObject animator] setValue:[NSNumber numberWithFloat:1.0] forKeyPath:@"someCustomProperty.progress"]; 

lub jeśli obiekt nie ma animator, utworzyć poprawną CAAnimation samodzielnie.

+0

Tak, ale jeśli Twój obiekt nie ma animatora i nie jest CALayerem, jak rozpocząć CAAnimację? – dmaclach

+0

Ty nie. Tylko kluczowe ścieżki na CALayers są animowane przez Core Animation. – millenomi

0

Nie wiem dokładnie, co próbujesz zrobić, ale jeśli chcesz używać CA na innych właściwościach, to nie jest problem. Musisz tylko zarejestrować odpowiednie akcje dla ścieżki klucza. Istnieje przykład wykonania tej czynności w dokumentacji Core Animation firmy Apple, przy użyciu CAAction. W szczególności implementujesz actionForLayer: forKey: aby skonfigurować domyślne zachowanie animacji tego klucza, a jeśli chcesz utworzyć animację właściwości niejawnie, zaimplementuj runActionForKey: object: arguments:.

Jeśli chodzi o animowanie obiektów innych niż CALayers, naprawdę nie rozumiem. Warstwy są głównym elementem wizualnym w Core Animation. Dodatkowo na iPhonie każdy pojedynczy UIView jest wspierany na warstwie, nie wierzę, że jest coś na ekranie iPhone'a, które nie jest w warstwie, więc nie rozumiem, dlaczego martwisz się o używanie animacji na czymś, co nie jest CALayer.

Powiązane problemy