Слои Core Animation - это, по сути, высокоуровневые абстракции поверхностей OpenGL.Они хранятся и обрабатываются графическим процессором, поэтому манипуляции со слоями чрезвычайно быстры.CALayer
объекты сами по себе очень легкие и не обрабатывают события.
Объекты NSView
с многослойной поддержкой (это то, что вы получаете, если вы включите флажки в Интерфейсном Разработчике) - это представления, которые отображают их содержимоеслой Core Animation, снова сохраненный в памяти графического процессора и имеющий те же преимущества в производительности, что и обычные CALayer
объекты, но со всеми функциональными возможностями обычного NSView
.
. В результате получается, что содержимое представлениявизуализируется (через Кварц) на его слой подложки (по сути, текстура OpenGL).Представление тогда должно только нарисовать снова, если содержание слоя изменяется.
Изменения положения, масштаба, поворота и т. Д. Слоя представления не требуют перерисовки содержимого представления.Это означает, что большую часть времени ЦП не требуется постоянно перерисовывать представление.