Архитектура визуализации в Core Animation

Cocoa

Хотя есть очевидные сходства между слоями Core Animation и Cocoa видами большое концептуальное расхождение в том, что слои не отображают непосредственно на экран.

Если NSView и UIView четко видовые объекты в шаблоне модель-вид-контроллер, слои Core Animation на самом деле модель объектов. Они инкапсулируют геометрию, время анимации и визуальные свойства, и они обеспечивают содержание, которое отображается, но фактически изображение не ответствечает за слои.

Каждый видимый слой дерева опирается на два соответствующих дерева: дерево, презентаций и дерево визуализации. На рисунке ниже показан пример дерева слоев с помощью классов слоев Core Animation, доступных в Mac OS X.

Дерево слоя содержит значения объектов модели для каждого слоя. Эти значения устанавливаются, когда вы присваиваете значение свойствам слоя.

Дерево презентации содержит значения, которые в настоящее время представляются пользователю в виде происходящей анимации. Например, установив новое значение для backgroundColor, слой немедленно изменяет значение в дереве слоя. Тем не менее, значение backgroundColor в соответствующем слое в представлении дерева будет обновляться с интерполированными цветами, отображаемыми пользователю.

Дерево визуализации использует значение в представлении дерева при отображении слоя. Дерево визуализации несет ответственность за выполнение операций композиции и зависит от активности приложений, визуализация осуществляется в рамках отдельного процесса или потока, так что она имеет минимальное влияние на цикл выполнения приложения.

Вы можете запросить экземпляр CALayer для соответствующего уровня визуализации в то время как анимация находится в процессе. Это особенно полезно, если вы собираетесь изменить в текущей анимации и хоте, начать новую анимацию от отображаемого в данный момент состояния.

 
 
homeЗаметили ошибкукарта сайта 
   Made on a Mac