Je confonds CGLayer
et CALayer
. Ils se ressemblent, alors pourquoi existe-t-il des implémentations distinctes? Quelle est la différence entre, et la compatibilité de, CGLayer
et CALayer
?
Réponse
Trop de publicités?Ils sont complètement différents, et ne sont pas compatibles.
Pour être tout à fait clair:
il est strictement une coïncidence que le mot "couche" est utilisé dans les deux noms; ils sont complètement indépendants.
CGLayers sont un "spécial" "haute performance" bidule.
Vous pourriez les considérer "comme des bitmaps, mais en mieux."
Apple s'assit et dit: "On en a marre des gens d'utiliser des bitmaps, nous allons faire quelque chose de mieux!" :-)
En effet, vous travaillez avec CGLayers à l'écran.
Pour répéter, CGLayers sont entièrement utilisés à l'écran.
Une fois qu'ils sont prêts, vous pouvez alors leur souffle à votre écran (c'est-à-dire: le souffle sur l'une de vos points de vue).
(Cependant: remarque: CGLayers sont souvent utilisés "seule". Quand je dis qu'ils sont utilisés "seul", je veux dire qu'ils sont utilisés pour: le traitement de l'image ou des calculs mathématiques. Dans ce cas, CGLayers sont jamais vu à l'écran, et ils ont absolument aucun lien avec le monde à l'écran.)
En revanche ... CALayers sont simplement les choses "en" points de vue. CALayers sont juste comment vues.
De sorte que les deux concepts sont totalement différentes.
CALayers sont seulement les choses "en" points de vue. En revanche CGLayers Apple cool "à l'écran, de haute performance, le calcul des machines."
Pour être clair, CGLayers ont absolument aucun lien les points de vue, et aucune association avec vue. (Bien sûr, vous pourriez coller un CGLayer à vue, mais ensuite, vous pouvez coller dire "typographie" ou "une image" à vue. La typographie et les images ne sont pas vues, et CGLayers ne sont pas vues.)
L'exemple typique est ceci:
vous voulez dessiner quelque chose de compliqué une fois, puis tirer la chose de nombreuses fois à l'écran. La réponse à ce problème est exactement CGLayers. Votre "zone de travail" serait un CGLayer; vous pouvez ensuite blit à une imprimante, sur l'écran, ou que ce soit.
Pour être clair, à mon avis, Apple aurait choisi un autre nom ...
un bon nom serait "CGCalculationSpace."
Le fait que le nom contient le mot "couche" vous fait penser à NSLayers.
À répéter: il n'y a absolument aucune relation, que ce soit, en quelque sorte. CGLayers ne sont même pas vaguement liées à des couches.
Il n'y a pas de connexion, pas du tout. Il est vraiment déroutant que les lettres "l a y e r" sont utilisées dans le nom - c'est une honte!!
CGLayers doit être appelé peut-être "espaces de travail" ou "calcul des paradigmes" ou quelque chose comme ça.
J'espère que ça aide et j'espère que vous êtes toujours à la lecture!