2008-09-06 15 views

Respuesta

1

Si puede hacer los cambios usted mismo y la clase que utiliza es personalizada, puede agregar un método setProgress: (float) f a su clase y usar CA para animarlo, luego modifique las propiedades deseadas según sea necesario. una función de f.

Sólo hacer una

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

o si el objeto no tiene un animador, crear el CAAnimation correcta usted mismo.

+0

Sí, pero si su objeto no tiene un animador y no es un CALayer, ¿cómo inicia una CAAnimation? – dmaclach

+0

No es así. Solo las rutas clave en CALayers son animables por Core Animation. – millenomi

0

No estoy seguro exactamente de lo que está tratando de hacer, pero si desea usar CA en otras propiedades, eso no es un problema. Solo necesita registrar acciones apropiadas para la ruta clave. Hay un ejemplo de esto en la documentación de animación principal de Apple, usando CAAction. Específicamente implementa actionForLayer: forKey: para configurar el comportamiento de animación predeterminado de esa clave, y si desea realizar la animación de la propiedad implícitamente, implementa runActionForKey: object: arguments:.

En cuanto a la animación de objetos que no sean CALayers, realmente no entiendo. Las capas son la entidad visual raíz en Core Animation. Además, en el iPhone cada UIView solo está respaldado en una capa, no creo que haya nada en la pantalla del iPhone que no esté en una capa, así que no entiendo por qué te preocupa usar animación en algo que no es un CALayer.

Cuestiones relacionadas