Jestem zagmatwany CGLayer
i CALayer
. Wyglądają podobnie, więc dlaczego istnieją oddzielne implementacje? Jaka jest różnica między i CGLayer
i CALayer
?Jaka jest różnica i kompatybilność CGLayer i CALayer?
Odpowiedz
Są całkowicie różne i nie są zgodne.
Aby być absolutnie jasne:
to ściśle przypadek, że słowo „warstwa” jest używany w obu nazw; są one całkowicie niepowiązane.
CGLayers są "specjalnymi" rzeczami o wysokiej wydajności.
Można je uznać za "bitmapy, ale lepiej".
Apple usiadł i powiedział "Mamy dość ludzi używających bitmap, stwórzmy coś lepszego!" :-)
Rzeczywiście, tylko pracować z CGLayers poza ekranem.
Aby powtórzyć, CGLayers są całkowicie wykorzystywane poza ekranem.
Gdy są już gotowe, możesz je następnie wysadzić na swój rzeczywisty ekran (to znaczy: wysadzić je jednym ze swoich widoków).
(Jednak: Uwaga: CGLayers są często stosowane, gdy mówię, że są stosowane „sam”, to znaczy są one wykorzystywane do „sam”.:. Przetwarzania obrazów lub obliczeń matematycznych W tym przypadku CGLayers nigdy nie są widoczne na ekranie i nie mają żadnego połączenia ze światem na ekranie.)
W przeciwieństwie do ... CALayers to po prostu widoki "w". CALayers są po prostu sposobem działania widoków.
Te dwa pojęcia są całkowicie różne.
CALayers to po prostu widoki "w". W przeciwieństwie do CGLayers są cool "poza ekranem, wysokiej wydajności, maszyn obliczeniowych."
Dla jasności, CGLayers nie mają absolutnie żadnego związku z widokami i nie są powiązane z widokami. (Oczywiście, możesz wkleić CGLayer do widoku, ale wtedy możesz wkleić "typografię" lub "obraz" w widoku. Typografia i obrazy nie są widokami, a CGLayers nie są widokami.)
Typowy przykład:
chcesz raz narysować coś skomplikowanego, a następnie narysuj to coś wiele razy na ekranie. Odpowiedzią na ten problem są dokładnie CGLayers. Twoim "miejscem pracy" będzie CGLayer; mógłbyś wtedy rozlać go na drukarkę, na ekran lub cokolwiek innego.
Dla jasności, moim zdaniem Apple powinno było wybrać inną nazwę ...
dobrym nazwiskiem byłoby "CGCalculationspace".
Fakt, że nazwa zawiera słowo "warstwa", powoduje, że myślisz o NSLayers.
Powtarzam: nie ma absolutnie żadnego związku, w jakikolwiek sposób. CGLayers nie są nawet niejasno związane z warstwami.
Brak połączenia. Naprawdę mylące jest to, że w nazwie używane są litery "l a y e r" - to wstyd !!
CGLayers należy nazywać "przestrzeniami roboczymi" lub "paradygmatami obliczeniowymi" lub czymś w tym rodzaju.
Mam nadzieję, że to pomoże i mam nadzieję, że nadal czytasz!
- 1. Jaka jest różnica między? : i ||
- 2. Jaka jest różnica między $ i $$?
- 3. Kompatybilność ARC i scenorysu
- 4. Jaka jest różnica między Subtotal i BaseSubtotal?
- 5. Jaka jest różnica między DetachedCriteria i ICriteria
- 6. Jaka jest różnica między & # x00A0; i ?
- 7. Jaka jest różnica między lex i yacc
- 8. jaka jest różnica między dijit i dojo
- 9. Jaka jest różnica między Control.Select() i Control.Focus()?
- 10. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 11. Jaka jest różnica między apletami i SWING?
- 12. Jaka jest różnica między session.commit() i session.flush()?
- 13. Jaka jest różnica między ImageView.setBackgroundResource i ImageView.setImageResource?
- 14. Jaka jest różnica między Konwertuj i parsuj?
- 15. Jaka jest różnica między JSP i JSTL?
- 16. Jaka jest różnica między Lazarus i CodeTyphon
- 17. Jaka jest różnica między crc32 i crc32b?
- 18. Jaka jest różnica między TypedArray.getInteger() i TypedArray.getInt()?
- 19. jaka jest różnica między ARM7 i ARM7s
- 20. Jaka jest różnica między http_build_str() i http_build_query()?
- 21. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 22. Jaka jest różnica między mock.patch.object (... i mock.patch (
- 23. Jaka jest różnica między GetBlobReference i GetBlobReferenceFromServer?
- 24. Jaka jest różnica między NSLayoutAttributeBaseline i NSLayoutAttributeBottom?
- 25. Jaka jest różnica między handlebar.js i handlebar.runtime.js?
- 26. Jaka jest różnica między innerText i outerText?
- 27. Jaka jest różnica beautifulsoup i bs4
- 28. Jaka jest różnica między Json i Jsonp?
- 29. Jaka jest różnica między WCF i WPF?
- 30. Jaka jest różnica między runghc i runhaskell?
Dziękuję bardzo! Przeczytałem to całkowicie. To był miły opis i był bardzo pomocny. Zwłaszcza o CGLayer kontra CALayer = "kompozycja poza ekranem" a "kompozycja na żywo" i "nie kompatybilna". Mam pomysł z twoim opisem; CALayer jest abstrakcyjnym modelem CGLayera (wykres sceny?) W każdym razie, dziękuję jeszcze raz! – Eonil
Ponownie przeczytałem twoją odpowiedź i zdałem sobie sprawę, że mam nieporozumienie. CGLayer nie jest niczym w porównaniu z CALayerem. CGLayer jest częścią rysunku, a CALayer jest częścią compositor. – Eonil
OMG, to jest niesamowita odpowiedź. Dziękuję bardzo za poświęcenie czasu, aby tak dobrze rozróżnić te dwie rzeczy! Rozwiązało to kilka moich wątpliwości. ++ punktów za "nadzieję, że wciąż czytasz"! : D – codeBearer