NSAnimation
Объекты NSAnimation
класс управляет синхронизацией и прогрессом анимаций в пользовательском интерфейсе. Класс также позволяет Вам соединить многократные анимации так, чтобы, когда концы анимации другой запускается. Это не предоставляет поддержки получения для анимации и непосредственно не имеет дело с представлениями, целями или действиями.
NSAnimation
объекты имеют несколько характеристик, включая продолжительность, частоту кадров и кривую анимации, описывающую относительную скорость анимации по ее курсу. Можно установить метки прогресса в анимации, каждая из которых указывает процент завершенной анимации; когда анимация достигает метки прогресса, она уведомляет своего делегата и отправляет уведомление любым наблюдателям. Анимации выполняются в одном из трех режимов блокирования: блокирование, неблокирование на основном потоке и неблокирование на отдельном потоке. В то время как анимация работает, режимы неблокирования разрешают обработку пользовательских событий.
Разделение на подклассы примечаний
Обычный образец использования для NSAnimation
должен сделать подкласс, переопределяющий (по крайней мере), currentProgress
свойство, чтобы вызвать реализацию суперкласса и затем выполнить безотносительно действия анимации необходимо. Реализация метода могла бы использовать currentValue
свойство и затем использует то значение для обновления некоторого получения; в результате получения текущей стоимости, метода animation:valueForProgress:
отправляется делегату (если существует делегат, реализующий метод). Для получения дополнительной информации о разделении на подклассы NSAnimation
, см. Руководство по программированию Анимации для Какао.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.4 и позже.
-
Возвраты
NSAnimation
объект, инициализированный с указанной продолжительностью и значениями кривой анимации.Объявление
Swift
init(duration
duration
: NSTimeInterval, animationCurveanimationCurve
: NSAnimationCurve)Objective C
- (instancetype)initWithDuration:(NSTimeInterval)
duration
animationCurve:(NSAnimationCurve)animationCurve
Параметры
duration
Число секунд, за которые происходит анимация. Указание отрицательного числа повышает исключение.
animationCurve
NSAnimationCurve
постоянный, который описывает относительную скорость анимации по ее курсу; если это - нуль, кривая по умолчанию (NSAnimationEaseInOut
) используется.Возвращаемое значение
Инициализированный
NSAnimation
экземпляр. Возвратыnil
если не мог бы быть инициализирован объект.Обсуждение
Можно всегда позже изменять продолжительность
NSAnimation
объект путем измененияduration
свойство, даже в то время как работает анимация. См. «Константы» для описаний констант NSAnimationCurve.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Режим блокирования анимации.
Объявление
Swift
var animationBlockingMode: NSAnimationBlockingMode
Objective C
@property NSAnimationBlockingMode animationBlockingMode
Обсуждение
Значение в этом свойстве определяет, блокирует ли анимация данный поток. Значение по умолчанию этого свойства
NSAnimationBlocking
, что означает, что анимация работает на основном потоке в пользовательском режиме цикла выполнения, блокирующем пользовательские события. При изменении значения этого свойства новый режим блокирования вступает в силу в следующий раз, когда анимация запускается и не имеет никакого эффекта на происходящую анимацию.Если Вы устанавливаете блочный режим в
NSAnimationNonblocking
, выполнения анимации в основном потоке в одном из стандартных режимов цикла выполнения или в режиме возвратились изrunLoopModesForAnimating
. Если Вы устанавливаете режим вNSAnimationNonblockingThreaded
, новый поток порожден для выполнения анимации.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Массив строк, представляющих режимы цикла выполнения, в которых может работать анимация. (только для чтения)
Объявление
Swift
var runLoopModesForAnimating: [AnyObject]? { get }
Objective C
@property(readonly, copy) NSArray *runLoopModesForAnimating
Обсуждение
Значение по умолчанию этого свойства
nil
, который указывает, что анимация может быть выполнена в значении по умолчанию, модальных, или режимах отслеживания события. Значение этого свойства проигнорировано, если режим блокирования анимации - что-то другое, чемNSAnimationNonblocking
.Для получения информации о выполненных режимах цикла и для констант, посмотрите Ссылку класса NSRunLoop.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
animationCurve animationCurve
СвойствоКривая синхронизации для анимации.
Объявление
Swift
var animationCurve: NSAnimationCurve
Objective C
@property NSAnimationCurve animationCurve
Обсуждение
Кривая анимации описывает относительную частоту кадров в течение анимации; предопределенные кривые линейны, осторожно вводят (замедлите ближний конец), ослабьте (медленно убыстряются в запуске), и упростите в простоте (S-кривая). Изменение значения этого свойства изменяет синхронизацию происходящей анимации. Если делегат реализует, значение этого свойства проигнорировано
animation:valueForProgress:
метод.Установка этого свойства к недопустимому значению повышает исключение. Для списка допустимых значений анимации посмотрите NSAnimationCurve.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
продолжительность продолжительность
СвойствоПродолжительность анимации, в секундах.
Обсуждение
Значение этого свойства должно быть больше, чем или равным
0
. Установка продолжительности к отрицательной величине повышает исключение.Можно изменить продолжительность анимации, в то время как она работает. Установка продолжительности к значению, которое является меньше, чем текущее значение прогресса, заканчивает происходящую анимацию.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Число кадра обновляет в секунду для генерации для анимации.
Объявление
Swift
var frameRate: Float
Objective C
@property float frameRate
Обсуждение
Значение этого свойства должно быть больше, чем или равным
0
. Указание значения0.0
заставляет анимацию работать максимально быстро. Установка свойства к отрицательной величине повышает исключение.Частота кадров не гарантируется вследствие различий среди систем в течение времени, должен был обработать кадр. Можно изменить частоту кадров, в то время как анимация работает, и новое значение используется в следующем кадре. Частота кадров по умолчанию установлена в рыночную стоимость (который подвергается будущему изменению).
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Делегат анимации.
Объявление
Swift
unowned(unsafe) var delegate: NSAnimationDelegate?
Objective C
@property(assign) id< NSAnimationDelegate > delegate
Обсуждение
Делегат должен соответствовать
NSAnimationDelegate Protocol
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Запускает анимацию, представленную получателем.
Объявление
Swift
func startAnimation()
Objective C
- (void)startAnimation
Обсуждение
Сильная ссылка к анимации сохраняется до конца анимации или до
stopAnimation
метод вызывают. Если режим блокированияNSAnimationBlocking
, этот метод, который возвраты после анимации завершили или делегат, отправляет ееstopAnimation
. Если получатель имеет прогресс1.0
, это запускается снова в0.0
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Останавливает анимацию, представленную получателем.
Объявление
Swift
func stopAnimation()
Objective C
- (void)stopAnimation
Обсуждение
Текущий прогресс получателя не сбрасывается. Когда этот метод отправляется в экземпляры
NSViewAnimation
(подклассNSAnimation
) перемещения получателя до конца структурируют расположение.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Булево значение, указывающее, происходит ли анимация. (только для чтения)
Объявление
Swift
var animating: Bool { get }
Objective C
@property(getter=isAnimating, readonly) BOOL animating
Обсуждение
Значение этого свойства
YES
true
когда анимация происходит илиNO
false
когда это останавливается.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.10 и позже.
-
currentProgress currentProgress
СвойствоТекущий прогресс анимации.
Объявление
Swift
var currentProgress: NSAnimationProgress
Objective C
@property NSAnimationProgress currentProgress
Обсуждение
Это свойство содержит процент завершения анимации. Допустимые значения находятся в диапазоне
0.0
к1.0
, где0.0
представляет начало анимации и1.0
представляет конец анимации.Изменение значения этого свойства корректирует прогресс рабочей анимации. Установка этого свойства к значению меньше, чем
0.0
устанавливает значение свойства к0.0
. Точно так же указывая значение, больше, чем1.0
изменяет значение свойства к1.0
.NSAnimation
класс обновляет значение этого свойства во время анимации. Для выполнения дополнительных задач в определенных точках прогресса используйте делегатаanimation:valueForProgress:
метод.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
currentValue currentValue
СвойствоТекущая стоимость эффекта анимации, на основе текущего прогресса (только для чтения)
Объявление
Swift
var currentValue: Float { get }
Objective C
@property(readonly) float currentValue
Обсуждение
NSAnimation
объект получает текущую стоимость от делегатаanimation:valueForProgress:
метод. Если тот метод не реализован, анимация вычисляет текущую стоимость из текущего прогресса факторингом в кривой анимации. Объект Animation не получает доступ к этому свойству непосредственно. ЭкземплярыNSAnimation
подклассы или другие объекты могут вызвать этот метод на периодической основе для получения текущей стоимости.Подклассы могут переопределить это свойство и возвратить значение пользовательской кривой вместо реализации
animation:valueForProgress:
, таким образом, экономя на издержках использования делегата. Текущая стоимость может быть меньше, чем0.0
или больше, чем1.0
. Например, если Вы делаете значение больше, чем1.0
можно достигнуть “резинового эффекта”, где размер представления временно больше перед его заключительным размером.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Добавляет метка прогресса к получателю.
Объявление
Swift
func addProgressMark(_
progressMark
: NSAnimationProgress)Objective C
- (void)addProgressMark:(NSAnimationProgress)
progressMark
Параметры
progressMark
A
float
значение (введенный как NSAnimationProgress) между 0,0 и 1.0. Значения вне того диапазона прикрепляются к 0,0 или 1.0, какой бы ни является самым близким.Обсуждение
Метка прогресса представляет процент завершенной анимации. Когда анимация достигает метки прогресса,
animation:didReachProgressMark:
сообщение отправляется делегату иNSAnimationProgressMarkNotification
широковещательно передается всем наблюдателям. Вы могли бы получить многократные уведомления об усовершенствованиях прогресса по многократным меткам.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Удаляет метку прогресса из получателя.
Объявление
Swift
func removeProgressMark(_
progressMark
: NSAnimationProgress)Objective C
- (void)removeProgressMark:(NSAnimationProgress)
progressMark
Параметры
progressMark
A
float
значение (введенный как NSAnimationProgress), который указывает часть завершенной анимации. Значение должно соответствовать набору метки прогресса с addProgressMark: или setProgressMarks:.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
progressMarks progressMarks
СвойствоМассив чисел с плавающей точкой, представляющих текущие метки прогресса.
Обсуждение
Значение этого свойства является массивом
NSNumber
объекты, каждый из которых содержит значение плавающее, которые вводятся кNSAnimationProgress
ввести. Если нет никаких меток прогресса, массив пуст. Установка значения этого свойстваnil
очищает все метки прогресса.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Когда другая анимация достигает определенной метки прогресса, начинает выполнять анимацию, представленную получателем.
Объявление
Swift
func startWhenAnimation(_
animation
: NSAnimation, reachesProgressstartProgress
: NSAnimationProgress)Objective C
- (void)startWhenAnimation:(NSAnimation *)
animation
reachesProgress:(NSAnimationProgress)startProgress
Параметры
animation
Другой
NSAnimation
объект, с которым соединяется получатель.startProgress
A
float
значение (введенный как NSAnimationProgress), который указывает метку прогресса другой анимации.Обсуждение
Этот метод соединяет выполнение двух анимаций. Можно установить только один
NSAnimation
возразите как анимация запуска и один как анимация остановки в любой момент. Установка новой анимации запуска удаляет любую анимацию ранее набор.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Остановки, выполняющие анимацию, представленную получателем, когда другая анимация достигает определенной метки прогресса.
Объявление
Swift
func stopWhenAnimation(_
animation
: NSAnimation, reachesProgressstopProgress
: NSAnimationProgress)Objective C
- (void)stopWhenAnimation:(NSAnimation *)
animation
reachesProgress:(NSAnimationProgress)stopProgress
Параметры
animation
Другой
NSAnimation
объект, с которым соединяется получатель.stopProgress
A
float
значение (введенный как NSAnimationProgress), который указывает метку прогресса другой анимации.Обсуждение
Этот метод соединяет выполнение двух анимаций. Можно установить только один
NSAnimation
возразите как анимация запуска и один как анимация остановки в любой момент. Установка новой анимации остановки удаляет любую анимацию ранее набор.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Очищает связь с другой анимацией, заставляющей получатель запускаться.
Объявление
Swift
func clearStartAnimation()
Objective C
- (void)clearStartAnimation
Обсуждение
Связь с другой анимацией сделана с
startWhenAnimation:reachesProgress:
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Очищает связь с другой анимацией, заставляющей получатель останавливаться.
Объявление
Swift
func clearStopAnimation()
Objective C
- (void)clearStopAnimation
Обсуждение
Связь с другой анимацией сделана с
stopWhenAnimation:reachesProgress:
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
См. также
Типы данных
-
NSAnimationProgress
возвращается в userInfo словареNSAnimationProgressMarkNotification
уведомление. Это будет иметь значение между 0,0 и 1.0Объявление
Swift
typealias NSAnimationProgress = Float
Objective C
typedef float NSAnimationProgress;
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
Эти константы описывают кривую анимации — т.е. относительная скорость анимации от начала до конца.
Объявление
Swift
enum NSAnimationCurve : UInt { case EaseInOut case EaseIn case EaseOut case Linear }
Objective C
typedef enum NSAnimationCurve : NSUInteger { NSAnimationEaseInOut, NSAnimationEaseIn, NSAnimationEaseOut, NSAnimationLinear } NSAnimationCurve;
Константы
-
EaseInOut
NSAnimationEaseInOut
Описывает S-кривую, в которой анимация медленно убыстряется и затем замедляется около конца анимации. Эта константа является значением по умолчанию.
Доступный в OS X v10.4 и позже.
-
EaseIn
NSAnimationEaseIn
Описывает анимацию, замедляющуюся, поскольку она достигает конца.
Доступный в OS X v10.4 и позже.
-
EaseOut
NSAnimationEaseOut
Описывает анимацию, медленно убыстряющуюся от запуска.
Доступный в OS X v10.4 и позже.
-
Linear
NSAnimationLinear
Описывает анимацию, в которой нет никакого изменения в частоте кадров.
Доступный в OS X v10.4 и позже.
Обсуждение
Вы инициализируете
NSAnimation
объект с помощью одной из этих констант сinitWithDuration:animationCurve:
и можно установить его после того сanimationCurve
свойство.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
-
Эти константы указывают режим блокирования
NSAnimation
возразите, когда это будет работать.Объявление
Swift
enum NSAnimationBlockingMode : UInt { case Blocking case Nonblocking case NonblockingThreaded }
Objective C
typedef enum NSAnimationBlockingMode : NSUInteger { NSAnimationBlocking, NSAnimationNonblocking, NSAnimationNonblockingThreaded } NSAnimationBlockingMode;
Константы
-
Blocking
NSAnimationBlocking
Запрашивает анимацию работать в основном потоке в пользовательском режиме цикла выполнения, блокирующем ввод данных пользователем.
Это - значение по умолчанию.
Доступный в OS X v10.4 и позже.
-
Nonblocking
NSAnimationNonblocking
Запрашивает анимацию работать в стандартном или указанном режиме цикла выполнения, позволяющем ввод данных пользователем.
Доступный в OS X v10.4 и позже.
-
NonblockingThreaded
NSAnimationNonblockingThreaded
Запрашивает анимацию работать в отдельном потоке, порожденном
NSAnimation
объект.Вторичный поток имеет свой собственный цикл выполнения.
Доступный в OS X v10.4 и позже.
Обсуждение
Вы указываете одну из этих констант в
animationBlockingMode
свойство.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.
-
-
Эти константы используются
NSAnimatablePropertyContainer
методыdefaultAnimationForKey:
иanimationForKey:
.Объявление
Objective C
NSString *NSAnimationTriggerOrderIn; NSString *NSAnimationTriggerOrderOut;
Константы
-
NSAnimationTriggerOrderIn
NSAnimationTriggerOrderIn
Триггер, представляющий меры, принятые, когда представление становится видимым, или в результате того, чтобы быть вставленным в видимую иерархию представления или в результате представления, больше не устанавливается, как скрытый.
Доступный в OS X v10.5 и позже.
-
NSAnimationTriggerOrderOut
NSAnimationTriggerOrderOut
Триггер, представляющий меры, принятые, когда представление или удалено из иерархии представления или скрыто.
Доступный в OS X v10.5 и позже.
-
-
Эта константа возвращается в userInfo словаре
NSAnimationProgressMarkNotification
уведомление.Объявление
Swift
var NSAnimationProgressMark: NSString!
Objective C
NSString *NSAnimationProgressMark;
Константы
-
NSAnimationProgressMark
NSAnimationProgressMark
Содержит значение
NSAnimationProgress
какNSNumber
экземпляр, указывающий прогресс текущей анимации. Значение будет между0.0
и1.0
.Доступный в OS X v10.4 и позже.
-
-
Отправленный, когда текущий прогресс рабочей анимации достигает одной из своих меток прогресса.
Объект уведомления является выполнением
NSAnimation
объект.userInfo
словарь содержит текущую метку прогресса, к которой получают доступ через ключNSAnimationProgressMark
.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.4 и позже.