iphone - usando - handoff que es
¿Cuándo usar CALayer en Mac/iPhone? (2)
Estoy un poco confundido sobre cuándo usar CALayer en el iPhone o Mac y cuándo no usarlo. CoreAnimation funciona bien en mis objetos basados en UIView sin tener que usar CALayer. ¿Cuándo es el momento adecuado para profundizar en esta clase?
En mis puntos de referencia, UIView y CALayer ofrecen aproximadamente el mismo nivel de rendimiento en el iPhone. Como rpetrich menciona en su comentario, UIViews es una envoltura delgada alrededor de CALayers. En Mac, los CALayers son mucho más ligeros que NSViews.
Como señala Ben, puede ir más allá de las capacidades de las animaciones implícitas trabajando directamente con CALayers, incluso proporcionando algunos efectos 3D a través de CATransform3D. En muchos casos, puede hacer esto incluso con sus vistas estándar accediendo a la capa de respaldo (si la vista está respaldada por capas).
Otra preocupación es el código multiplataforma (Mac / iPhone). La aplicación de mi iPhone usa una interfaz de todo CALAYER para su vista principal en gran parte porque puedo usar el mismo código exacto para dibujar esa interfaz en su contraparte Mac. Para otro ejemplo de esto, te dirijo al marco Core Plot , que dibuja gráficas completamente usando CALayers y funciona tanto en Mac como en iPhone. Los CALayers son prácticamente iguales en ambas plataformas, donde UIView y NSView tienen interfaces muy diferentes.
Si puede hacer lo que quiera con la "animación implícita" (la ofrecida por UIKit / AppKit sin tener que excavar en CA, capas y animadores), entonces definitivamente siga esa ruta.
CoreAnimation entra en juego cuando empiezas a usar animaciones más complejas, como movimientos no lineales o efectos repetitivos y ciertos efectos sincronizados. Hay mucho que puedes hacer con él, pero es una herramienta bastante resistente (con una curva de aprendizaje proporcional, al menos en comparación con las cosas de UIKit).