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;
Константы
-
kCAAnimationLinear
kCAAnimationLinear
Простое линейное вычисление между значениями ключевого кадра.
Доступный в OS X v10.5 и позже.
-
kCAAnimationDiscrete
kCAAnimationDiscrete
Каждое значение ключевого кадра используется, в свою очередь, никакие интерполированные значения не вычисляются.
Доступный в OS X v10.5 и позже.
-
kCAAnimationPaced
kCAAnimationPaced
Значения ключевого кадра интерполированы для создания даже темп в течение анимации.
Доступный в OS X v10.5 и позже.
-
kCAAnimationCubic
kCAAnimationCubic
Промежуточные кадры вычислены с помощью шлица Catmull-Rom, проходящего через ключевые кадры. Можно скорректировать форму шлица путем указания дополнительного набора силы, непрерывности, и сместить значения, изменяющие шлиц с помощью стандартной формы Kochanek-Bartels.
Доступный в OS X v10.7 и позже.
-
kCAAnimationCubicPaced
kCAAnimationCubicPaced
Промежуточные кадры вычислены с помощью кубической схемы, но
keyTimes
иtimingFunctions
свойства анимации проигнорированы. Вместо этого синхронизирующие параметры вычисляются неявно, чтобы дать анимации постоянную скорость.Доступный в OS X v10.7 и позже.
-