Así que aquí es mi entendimiento: hay una setNeedsDisplay
tanto en la clase UIView y CALayer, UIView es una clase de compuesto que incluye una CALayer. Pero UIView utiliza drawRect:
mientras CALayer utiliza drawLayer:inContext:
Ambos utilizan setNeedsDisplay
llamarlo. ¿Es esto algún protocolo o algo? Así que supongo que en algún momento de la implementación de UIView, se crea un CALayer y el delegado de esta capa se establece en la clase UIView. ¿Cuál es exactamente la relación entre estas dos clases? ¿Entonces el drawRect:
en UIView básicamente está analizando su contenido y llama al drawLayer:inContext:
de su capa? ¿Qué tipo de patrón de diseño es este? Estoy tratando de entender cómo funcionan estas dos clases, gracias.¿Cuál es la relación entre UIView y CALayer
5
A
Respuesta
0
Esto es todo detalle de implementación de Apple, así que no sé a ciencia cierta. Además, diferentes clases de vista tendrán diferentes relaciones con su capa.
Por ejemplo, UIImageView
es explicitly documented a no llamada drawRect:
. Esto se debe probablemente a que la configuración de una imagen realmente actualiza la propiedad de la capa contents
directamente sin pasar por los métodos de representación.
Dicho esto, me imagino que el comportamiento más básico de UIView
es que setNeedsDisplay
simplemente reenvía la llamada a la capa. Entonces, cuando el drawLayer:inContext:
se llama en la vista, en ella se establece la materia UIGraphics
contexto y llama drawRect:
.
Cuestiones relacionadas
- 1. ¿Cómo es la relación entre clipsToBounds de UIView y masksToBounds de CALayer?
- 2. Relación entre UIVIew y CALayer con respecto a la imagen de fondo en iOS
- 3. ¿Cuál es la diferencia entre CALayer -drawInContext: y -renderInContext :?
- 4. ¿Cuál es la relación entre setUedsLayout, layoutIfNeeded y layoutSubviews de UIView?
- 5. ¿Cuáles son las diferencias entre un UIView y un CALayer?
- 6. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 7. ¿Es posible copiar CALayer de UIView?
- 8. ¿Cuál es la relación entre "un" montón y "el" montón?
- 9. ¿Cuál es la relación entre docutils y Sphinx?
- 10. ¿Cuál es la relación entre bitbucket.org y bytebucket.org?
- 11. ¿Cuál es la relación entre el campo 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' y PropertyPlaceHolderConfigurer?
- 12. ¿Cuál es la relación entre entornos y proyectos en virtualenvwrapper?
- 13. ¿Cuál es la relación entre Passenger y Capistrano?
- 14. nginx, ¿cuál es la relación entre worker_connections, keepalive_timeout y $ conexión
- 15. ¿Cuál es la diferencia/relación entre AVR y Arduino?
- 16. ¿Cuál es la relación entre las redes bayesianas y neuronales?
- 17. ¿Cuál es la relación entre __getattr__ y getattr?
- 18. ¿Cuál es la relación entre AppDelegate, RootViewController y UIApplication?
- 19. ¿Cuál es la relación entre WIC y GDI +?
- 20. ¿Cuál es la relación entre masksToBounds y cornerRadius?
- 21. ¿Cuál es la relación entre GTK, GTK + y GTK2?
- 22. ¿Cuál es la relación entre OSGi y Dependency Injection
- 23. ¿Cuál es la relación entre Xtext y ANTLR?
- 24. ¿Cuál es la relación entre GC, Finalize() y Dispose?
- 25. ¿Cuál es la relación entre ContentPane y JPanel?
- 26. ¿Cuál es la relación entre Selenium RC y WebDriver?
- 27. Cuál es la relación entre píxeles y píxeles escalados
- 28. ¿Cuál es la relación entre ghc-pkg y cabal?
- 29. ¿Cuál es la relación entre un UIView.frame y CALayer.frame? (tanto antes como después de un CATransform3D)
- 30. Animación de UIView enmascarado, CALayer