2008-09-06 3 views

Antwort

1

Wenn Sie die Änderungen selbst vornehmen können und die von Ihnen verwendete Klasse benutzerdefiniert ist, können Sie der Klasse eine setProgress: (float) f-Methode hinzufügen und sie mit CA animieren und dann die gewünschten Eigenschaften nach Bedarf ändern eine Funktion von f.

einfach ein

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

oder wenn das Objekt nicht einen Animator hat, schafft die richtige CAAnimation selbst.

+0

Ja, aber wenn Ihr Objekt keinen Animator hat und kein CALayer ist, wie starten Sie eine CAAnimation? – dmaclach

+0

Sie nicht. Nur Schlüsselpfade auf CALayers können von Core Animation animiert werden. – millenomi

0

Ich bin mir nicht sicher, was genau Sie versuchen zu tun, aber wenn Sie CA auf andere Eigenschaften verwenden möchten, ist das kein Problem. Sie müssen nur die entsprechenden Aktionen für den Schlüsselpfad registrieren. Es gibt ein Beispiel, dies in Apples Core Animation-Dokumentation unter Verwendung von CAAction zu tun. Insbesondere implementieren Sie actionForLayer: forKey: Konfigurieren Sie das Standardanimationsverhalten dieses Schlüssels, und wenn Sie die Eigenschaftsanimation implizit vornehmen möchten, implementieren Sie runActionForKey: object: arguments:.

Zum Animieren anderer Objekte als CALayers, verstehe ich wirklich nicht. Ebenen sind die root-visuelle Entität in Core Animation. Außerdem wird auf dem iPhone jeder einzelne UIView auf einer Ebene gesichert. Ich glaube nicht, dass auf dem Bildschirm des iPhones etwas vorhanden ist, das nicht in einer Ebene ist. Daher verstehe ich nicht, warum Sie sich Sorgen darum machen, Animationen zu verwenden ein CALayer.

Verwandte Themen