CAKeyframeAnimation
CAKeyframeAnimation класс обеспечивает возможности анимации ключевых кадров расположенного на слое объекта. Вы создаете CAKeyframeAnimation объект с помощью наследованного animationWithKeyPath: метод, указывая ключевой путь свойства, которое Вы хотите анимировать на уровне. Можно тогда указать значения ключевого кадра для использования для управления поведением синхронизации и анимации.
Для большинства типов анимаций Вы указываете значения ключевого кадра с помощью values и keyTimes свойства. Во время анимации Базовая Анимация генерирует промежуточные значения путем интерполяции между значениями, которые Вы обеспечиваете. При анимации значения, которое является координатной точкой, такой как позиция уровня, можно указать a path для той точки для следования вместо отдельных значений. Следованием анимации управляет информация синхронизации, которую Вы обеспечиваете.
Наследование
-
NSObject -
CAAnimation -
CAPropertyAnimation -
CAKeyframeAnimation
-
NSObject -
CAAnimation -
CAPropertyAnimation -
CAKeyframeAnimation
Соответствует
-
AnyObject -
CAAction -
CAMediaTiming -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
Печатаемый -
CAAction -
CAMediaTiming -
NSCoding -
NSCopying -
NSObject
Оператор импорта
Swift
import QuartzCore
Objective C
@import QuartzCore;
Доступность
Доступный в OS X v10.5 и позже.
-
Массив объектов, указывающих значения ключевого кадра для использования для анимации.
Обсуждение
Значения ключевого кадра представляют значения, через которые должна продолжиться анимация. Время, в которое данное значение ключевого кадра применяется к уровню, зависит от синхронизации анимации, которой управляют
calculationMode,keyTimes, иtimingFunctionsсвойства. Ценности между ключевыми кадрами созданы с помощью интерполяции, если режим вычисления не установлен вkCAAnimationDiscrete.В зависимости от типа свойства Вы, возможно, должны обернуть значения в этот массив с
NSNumberизNSValueобъект. Для некоторых Базовых Графических типов данных Вы, возможно, также должны бросить их кidпрежде, чем добавить их к массиву.Значения в этом свойстве используются только если значение в
pathсвойствоnil.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
-
Путь для основанного на точке свойства для следования.
Обсуждение
Для свойств слоя, содержащих a
CGPointтип данных, объект контуров, который Вы присваиваете этому свойству, определяет значения для того свойства за продолжительность анимации. Если Вы указываете значение для этого свойства, каких-либо данных вvaluesсвойство проигнорировано.Любые значения синхронизации, которые Вы указываете для анимации, применяются к точкам, используемым для создания пути. Пути могут содержать точки, определяющие перемещение - к, строка - к, или кривая - к сегментам. Конечная точка строки - к или кривая - для сегментации определяет значение ключевого кадра. Все другие точки между тем значением конца и предыдущим значением тогда интерполированы. Перемещение - к сегментам не определяет отдельные значения ключевого кадра.
То, как анимация продолжается вдоль пути, зависит от значения в
calculationModeсвойство. Для достижения гладкой, постоянной скоростной анимации вдоль пути установитеcalculationModeсвойство кkCAAnimationPacedилиkCAAnimationCubicPaced. Для создания анимации, где значение расположения спрыгивает с точки ключевого кадра к точке ключевого кадра (без промежуточной интерполяции) используйтеkCAAnimationDiscreteзначение. Для анимации вдоль пути путем интерполяции значений между точками используйтеkCAAnimationLinearзначение.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Дополнительный массив
NSNumberобъекты, определяющие время, в которое можно применить данный сегмент ключевого кадра.Обсуждение
Каждое значение в массиве является числом с плавающей точкой между
0.0и1.0это определяет момент времени (указанный как часть общей продолжительности анимации), в котором можно применить соответствующее значение ключевого кадра. Каждое последовательное значение в массиве должно быть больше, чем или равным, предыдущее значение. Обычно, число элементов в массиве должно соответствовать число элементов вvaluesсвойство или число контрольных точек вpathсвойство. Если они не делают, синхронизация Вашей анимации не могла бы быть тем, что Вы ожидаете.Надлежащие значения для включения в массив зависят от
calculationModeсвойство.Если calculationMode установлен в
kCAAnimationLinearилиkCAAnimationCubic, первое значение в массиве должно быть0.0и последнее значение должно быть1.0. Все промежуточные значения представляют моменты времени между запуском и время окончания.Если calculationMode установлен в
kCAAnimationDiscrete, первое значение в массиве должно быть0.0и последнее значение должно быть1.0. Массив должен иметь еще одну запись, чем появляется в массиве значений. Например, если существует два значения, должно быть три ключевых раза.Если calculationMode установлен в
kCAAnimationPacedилиkCAAnimationCubicPaced, значения в этом свойстве проигнорированы.
Если значения в этом массиве являются недопустимыми или несоответствующими для текущего режима вычисления, они проигнорированы.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
-
timingFunctions timingFunctionsСвойствоДополнительный массив
CAMediaTimingFunctionобъекты, определяющие следование для каждого сегмента ключевого кадра.Объявление
Swift
var timingFunctions: [AnyObject]!Objective C
@property(copy) NSArray *timingFunctionsОбсуждение
Можно использовать этот массив для применения простоты - в, простоты или пользовательских кривых синхронизации к точкам, находящимся между двумя значениями ключевого кадра. Если число ключевых кадров в свойстве значений является n, то это свойство должно содержать n
-1объекты.Если Вы обеспечиваете информацию синхронизации в
keyTimesсвойство, синхронизация функционирует, Вы указываете, что использование этого свойства далее изменяет синхронизацию между теми значениями. Если Вы не присваиваете значениеkeyTimesсвойство, функции синхронизации изменяют синхронизацию значения по умолчанию, предоставленную объектом Animation.Если Вы также указываете, что синхронизация функционирует в объекте Animation
timingFunctionсвойство, та функция применяется сначала сопровождаемая функцией синхронизации для определенного сегмента ключевого кадра.Для получения информации о том, как создать функцию синхронизации, посмотрите Ссылку класса CAMediaTimingFunction.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
-
calculationMode calculationModeСвойствоУказывает, как промежуточные значения ключевого кадра вычисляются получателем.
Обсуждение
Возможные значения описаны в
“Value calculation modes”. Значение по умолчанию этого свойстваkCAAnimationLinear.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
-
rotationMode rotationModeСвойствоОпределяет, вращается ли анимация объектов вдоль пути для соответствия касательной пути.
Обсуждение
Возможные значения для этого свойства описаны в
“Rotation Mode Values”. Значение по умолчанию этого свойстваnil, который указывает, что объекты не должны вращаться для следования за путем.Эффект установки этого свойства к не -
nilоцените, когда никакой объект контуров не предоставляется, не определено.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
См. также
-
tensionValues tensionValuesСвойствоМассив
NSNumberобъекты, определяющие плотность кривой.Обсуждение
Это свойство используется только для кубических режимов вычисления. В то время как отрицательные величины указывают кривую бездельника, положительные значения указывают более трудную кривую. Первое значение определяет поведение касательной к первой контрольной точке, второе значение управляет касательными второй точки и т.д. Если Вы не указываете значение для данной контрольной точки, значение
0используется.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.7 и позже.
-
continuityValues continuityValuesСвойствоМассив
NSNumberобъекты, определяющие резкость углов кривой синхронизации.Объявление
Swift
var continuityValues: [AnyObject]!Objective C
@property(copy) NSArray *continuityValuesОбсуждение
Это свойство используется только для кубических режимов вычисления. В то время как отрицательные величины создают инвертированные углы, положительные значения приводят к более резким углам. Первое значение определяет поведение касательной к первой контрольной точке, второе значение управляет касательными второй точки и т.д. Если Вы не указываете значение для данной контрольной точки, значение
0используется.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.7 и позже.
-
biasValues biasValuesСвойствоМассив
NSNumberобъекты, определяющие позицию кривой относительно контрольной точки.Обсуждение
Это свойство используется только для кубических режимов вычисления. Положительные значения перемещают кривую перед контрольной точкой, в то время как отрицательные величины перемещают его после контрольной точки. Первое значение определяет поведение касательной к первой контрольной точке, второе значение управляет касательными второй точки и т.д. Если Вы не указываете значение для данной контрольной точки, значение
0используется.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.7 и позже.
-
Эти константы используются
rotationModeсвойство.Объявление
Objective C
NSString * const kCAAnimationRotateAuto NSString * const kCAAnimationRotateAutoReverseКонстанты
-
Эти константы используются
calculationModeсвойство.Объявление
Swift
let kCAAnimationLinear: NSString! let kCAAnimationDiscrete: NSString! let kCAAnimationPaced: NSString! let kCAAnimationCubic: NSString! let kCAAnimationCubicPaced: NSString!Objective C
NSString * const kCAAnimationLinear; NSString * const kCAAnimationDiscrete; NSString * const kCAAnimationPaced; NSString * const kCAAnimationCubic; NSString * const kCAAnimationCubicPaced;Константы
-
kCAAnimationLinearkCAAnimationLinearПростое линейное вычисление между значениями ключевого кадра.
Доступный в OS X v10.5 и позже.
-
kCAAnimationDiscretekCAAnimationDiscreteКаждое значение ключевого кадра используется, в свою очередь, никакие интерполированные значения не вычисляются.
Доступный в OS X v10.5 и позже.
-
kCAAnimationPacedkCAAnimationPacedЗначения ключевого кадра интерполированы для создания даже темп в течение анимации.
Доступный в OS X v10.5 и позже.
-
kCAAnimationCubickCAAnimationCubicПромежуточные кадры вычислены с помощью шлица Catmull-Rom, проходящего через ключевые кадры. Можно скорректировать форму шлица путем указания дополнительного набора силы, непрерывности, и сместить значения, изменяющие шлиц с помощью стандартной формы Kochanek-Bartels.
Доступный в OS X v10.7 и позже.
-
kCAAnimationCubicPacedkCAAnimationCubicPacedПромежуточные кадры вычислены с помощью кубической схемы, но
keyTimesиtimingFunctionsсвойства анимации проигнорированы. Вместо этого синхронизирующие параметры вычисляются неявно, чтобы дать анимации постоянную скорость.Доступный в OS X v10.7 и позже.
-
