Они совершенно разные и несовместимые.
Чтобы быть абсолютно ясным:
это строго совпадение , что слово "слой" используется в обоих имена ;они совершенно не связаны .
CGLayers - это «особые» «высокопроизводительные» штуки.
Вы можете считать их «как растровые изображения, но лучше».
Apple села и сказала: "Нам надоели люди, использующие растровые изображения, давайте сделаем что-то лучше!": -)
Действительно, вы работаете только с CGLayers offscreen .
Повторюсь, CGLayers полностью используются вне экрана.
Как только они будут готовы, вы можете затем вставить их на свой фактический экран (то есть: развернуть их на один из ваших видов).
( Однако : обратите внимание, что:CGLayers часто используются «в одиночку». Когда я говорю, что они используются «в одиночку», я имею в виду, что они используются для обработки изображений или математических вычислений. В этом случае CGLayers никогда не видны на экране, и они совершенно не связаны с экраном.world.)
В отличие от ... CALayers - это просто вещи "в" взглядах.CALayers - это просто то, как работают представления.
Таким образом, эти два понятия полностью различаются.
CALayers - это просто "в" представлениях. В отличие от CGLayers - это крутая «внеэкранная, высокопроизводительная, вычислительная техника Apple».
Чтобы быть понятным, CGLayers совершенно не связаны с представлениями и не связаны сПросмотры.(Конечно, вы можете вставить CGLayer в представление, но затем вы можете вставить, скажем, «типографика» или «изображение» в представление. Типография и изображения не являются представлениями, а CGLayers не являются представлениями.)
Типичный пример таков:
вы хотите один раз нарисовать что-нибудь сложное, а затем много раз нарисовать это на экране.Ответом на эту проблему является именно CGLayers.Ваша «рабочая зона» будет CGLayer;затем вы можете перетащить его на принтер, на экран или что-то еще.
Чтобы было ясно, по моему мнению, Apple должна была выбрать другое имя ...
хорошее имя будет "CGCalculationSpace".
Тот факт, что имя содержит слово "layer", заставляет вас думать о NSLayers.
Повторим: нет абсолютно никакой связиникак, никак.CGLayers даже слабо связаны со слоями.
Нет никакой связи вообще.Это действительно сбивает с толку, что в имени используются буквы «layer» - это позор !!
CGLayers следует называть, возможно, «рабочими пространствами» или «парадигмами вычисления» или чем-то в этом роде.
Надеюсь, это поможет и надеюсь, что вы все еще читаете!