Tak oto jest moje zrozumienie: istnieje setNeedsDisplay
zarówno w klasie UIView i CALayer, UIView jest klasą złożoną, która zawiera CALayer. Ale UIView używa drawRect:
, podczas gdy CALayer używa drawLayer:inContext:
. Oba używają nazwy setNeedsDisplay
. Czy to jakiś protokół czy coś takiego? Tak myślę, że w pewnym momencie implementacji UIView tworzony jest CALayer i delegat tej warstwy jest ustawiony na klasę UIView? Jaki jest dokładnie związek między tymi dwoma klasami? Więc drawRect:
w UIView jest zasadniczo parsowanie jego zawartości i wywołanie drawLayer:inContext:
jego warstwy? Jaki to wzór? Próbuję owijać głowę, jak działają te dwie klasy, dzięki.Jaki jest związek między UIView i CALayer
5
A
Odpowiedz
0
To wszystko szczegóły implementacji Apple, więc nie wiem na pewno. Ponadto różne klasy widoku będą miały różne relacje z warstwą.
Na przykład UIImageView
jest explicitly documented do nie wezwanie drawRect:
. Jest tak prawdopodobnie dlatego, że ustawienie obrazu faktycznie bezpośrednio aktualizuje własność warstwy contents
bez przechodzenia przez metody renderowania.
To powiedziawszy, wyobrażam sobie, że najbardziej podstawowym zachowaniem jest to, że setNeedsDisplay
po prostu przekazuje połączenie do warstwy. Następnie, gdy wywoływany jest widok drawLayer:inContext:
, ustawia on kontekst kontekstowy UIGraphics
i wywołuje drawRect:
.
Powiązane problemy
- 1. jaki jest związek między masksToBounds i cornerRadius?
- 2. Jaki jest związek między WIC i GDI +?
- 3. Jaki jest związek między docutils i Sphinx?
- 4. Jaki jest związek między Node.js i V8?
- 5. Jaki jest związek między validate() i hasErrors()
- 6. Jaki jest związek między iteracjami i FRP?
- 7. Dodaj CALayer poniżej UIView
- 8. Jaki jest związek między pasażerem a Capistrano?
- 9. Jaki jest związek między __getattr__ a getattr?
- 10. Jaki jest związek między OSGi i Injection Dependency Injection?
- 11. Jaki jest związek między stertą "a" i stosem?
- 12. Jaki jest związek między ghc-pkg i cabal?
- 13. jaki jest związek między tomcat i jdk a aplikacją internetową?
- 14. W nginx, jaki jest związek między worker_connections, keepalive_timeout i $ związku
- 15. Jaki jest związek między GDAL, FDO i OGR?
- 16. Jaki jest związek między środowiskami i projektami w virtualenvwrapper?
- 17. Jaki jest związek między funkcjami generatora i monad w JavaScript?
- 18. jaki jest związek między UIView.frame a CALayer.frame? (zarówno przed i po CATransform3D)
- 19. Jaki jest związek między wątkiem JavaScript a wątkiem interfejsu Silverlight?
- 20. Jaki jest związek między Spring Boot a Spring IO?
- 21. Jaki jest związek między językiem asemblera a językiem maszynowym?
- 22. Jaki jest związek między liczbą a funkcją.prototype w javascript?
- 23. Jaki jest związek między stacją nazw iostream a stacją nazw?
- 24. Jaki jest związek między polem "SYSTEM_PROPERTIES_MODE_ENVIRONMENT" a PropertyPlaceHolderConfigurer?
- 25. Jaki jest związek między forkOn a flagą -qm RTS?
- 26. Jaki jest związek między SPID a połączeniem na serwerze SQL?
- 27. Jaki jest związek między modelowaniem tematów a grupowaniem dokumentów?
- 28. Związek anonimowy i normalny związek
- 29. Zastosowanie fizyki Box2D do UIView vs CALayer
- 30. umieścić subviews o UIView przed jego CALayer?