Подтвердить что ты не робот

Какая разница и совместимость CGLayer и CALayer?

Я запутываю CGLayer и CALayer. Они выглядят одинаково, так почему же существуют отдельные реализации? Какая разница между совместимостью и CGLayer и CALayer?

4b9b3361

Ответ 1

Они совершенно разные и несовместимы.

Чтобы быть абсолютно ясным:

строго совпадение, что слово "слой" используется как в именах; они полностью не связаны.

CGLayers - это "специальная" "высокая производительность".

Вы можете считать их "как растровые изображения, но лучше".

Apple села и сказала: "Мы больны людьми, использующими растровые изображения, пусть делают что-то лучше!": -)

Действительно, вы работаете только с CGLayers вне экрана.

Чтобы повторить, CGLayers полностью используется вне экрана.

Как только они будут готовы, вы можете взорвать их на свой фактический экран (то есть: взорвать их на одном из ваших видов).

( Однако: обратите внимание: CGLayers часто используются "в одиночку". Когда я говорю, что они используются "в одиночку", я имею в виду, что они используются для обработки изображений или математических вычислений., CGLayers никогда не видят на экране, и они совершенно не связаны с экранным миром.)

В отличие от... CALayers - это просто вещи "в" представлениях. CALayers - это то, как работают представления.

Итак, оба понятия совершенно разные.

CALayers - это всего лишь "взгляды". В отличие от CGLayers - это "прохладно" Apple, "вне экрана", высокопроизводительные вычислительные машины.

Чтобы быть ясным, CGLayers совершенно не связаны с представлениями и не связаны с представлениями. (Конечно, вы можете вставить CGLayer в представление, но затем вы можете вставить в "представление" "типографию" или "изображение" в представление. Типография и изображения не являются представлениями, а CGLayers не являются представлениями.)

Типичный пример:

вы хотите нарисовать что-то сложное один раз, а затем нарисовать эту вещь много раз на экране. Ответ на эту проблему - именно CGLayers. Ваша "рабочая область" будет CGLayer; вы могли бы затем разбить его на принтер, на экран или что угодно.

Чтобы быть ясным, на мой взгляд, Apple должна была выбрать другое имя...

хорошим именем будет "CGCalculationSpace".

Тот факт, что имя содержит слово "слой", заставляет вас думать о NSLayers.

Повторяю: абсолютно никаких отношений нет. CGLayers даже не смутно связаны со слоями.

Совсем нет связи. Это действительно сбивает с толку, что буквы "l a y e r" используются в названии - это позор!!

CGLayers следует называть, возможно, "рабочими областями" или "парадигмами вычисления" или что-то в этом роде.

Надеюсь, он поможет и надеюсь, что вы все еще читаете!