NSAnimatablePropertyContainer
Протокол NSAnimatablePropertyContainer определяет способ добавить анимацию к существующему классу с минимумом влияния API. Это возвращает объект прокси для получателя, который может использоваться для инициирования подразумеваемой анимации изменений свойства. Прокси аниматора объекта должен быть обработан, как будто это было самим объектом и может быть передано любому коду, принимающему объект в качестве параметра. Отправка кодирующих значение ключа совместимых сообщений «набора» к прокси инициирует анимацию для автоматически анимированных свойств ее целевого объекта.
Автоматически анимированные свойства объекта - те для который NSAnimatablePropertyContainer
находит и возвращает CAAnimation вместо ноля, часто потому что animator
указывает анимацию по умолчанию для ключа.
Это совершенно допустимо для установки нового значения для свойства, для который анимация, которая в настоящее время происходит; это просто устанавливает новое целевое значение для того свойства с анимацией к новому целевому происхождению безотносительно текущей стоимости, которой достигло свойство. Анимация свойства в полете может быть остановлена путем установки нового значения для свойства, заключенного в скобки NSAnimationContext
с 0,0 как продолжительность.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.5 и позже.
-
аниматор () - аниматор
ТребуемыйВозвращает объект прокси для получателя, который может использоваться для инициирования подразумеваемой анимации для изменений свойства. (требуемый)
Объявление
Swift
func animator() -> Self!
Objective C
- (instancetype)animator
Возвращаемое значение
Возвращает объект прокси для получателя, который может инициировать подразумеваемые анимации в ответ на изменения свойства.
Обсуждение
Объект прокси аниматора должен быть обработан, как будто это было самим получателем и может быть передано любому коду, принимающему получатель в качестве параметра.
Отправка значения ключа, кодирующего совместимые сообщения «набора» к прокси, инициирует анимацию для автоматически анимированных свойств ее целевого объекта, если активное
NSAnimationContext
в текущем потоке имеет значение продолжительности, больше, чем нуль, и анимация для ключа свойства найденаNSAnimatablePropertyContainer
поисковый механизм.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
-
анимации () - анимации
ТребуемыйВозвращает дополнительный словарь, отображающий триггерные ключи события на объекты Animation. (требуемый)
Объявление
Swift
func animations() -> [NSObject : AnyObject]
Objective C
- (NSDictionary *)animations
Возвращаемое значение
Анимации как словарь.
Обсуждение
Когда действие происходит, который может инициировать анимацию
NSAnimatablePropertyContainer
метод сначала смотрит в этом словаре для анимации, соответствующей ключ. Как правило, ключ назовет свойство объекта, значение которого только что изменилось, но это может указать триггер специального мероприятия (NSAnimationTriggerOrderIn
илиNSAnimationTriggerOrderOut
).Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
-
setAnimations (_:) - setAnimations:
ТребуемыйУстанавливает словарь опции, отображающий триггерные ключи события на объекты Animation. (требуемый)
Объявление
Swift
func setAnimations(_
dict
: [NSObject : AnyObject]!)Objective C
- (void)setAnimations:(NSDictionary *)
dict
Параметры
dict
Словарь, содержащий событие, инициировал ключи и связанные объекты Animation.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
-
animationForKey (_:) - animationForKey:
ТребуемыйВозвращает анимацию, которая должна быть выполнена для указанного ключа. (требуемый)
Объявление
Swift
func animationForKey(_
key
: String) -> AnyObject?Objective C
- (id)animationForKey:(NSString *)
key
Параметры
key
Имя действия или свойство, указанное как строка.
Возвращаемое значение
Анимация для выполнения. Подкласс
CAAnimation
.Обсуждение
Когда действие, указанное
key
инициирован для объекта, с этим методом консультируются для нахождения анимации, если таковые имеются, который должен быть выполнен в ответ.Как его Базовая Анимация
CALayer
дубликат,actionForKey:
, этот метод является точкой трубы, определяющей порядок, в котором продолжается поиск анимации. Это сначала проверяет получатель“Getting the Animator Proxy”
словарь для соответствия значенияkey
, тогда отступает кanimator
для класса получателя.Подклассы не должны обычно должны быть переопределять этот метод.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает анимацию по умолчанию, которая должна быть выполнена для указанного ключа. (требуемый)
Объявление
Swift
class func defaultAnimationForKey(_
key
: String!) -> AnyObject!Objective C
+ (id)defaultAnimationForKey:(NSString *)
key
Параметры
key
Имя действия или свойство, указанное как строка.
Возвращаемое значение
Анимация для выполнения. Подкласс
CAAnimation
.Обсуждение
NSAnimatablePropertyContainer
метод консультируется с этим методом класса когда его поиск получателей“Getting the Animator Proxy”
словарю не удается возвратить анимацию дляkey
.animatable контейнер свойства должен реализовать этот метод для возврата анимации по умолчанию, которая будет выполняться для каждого ключа, что это хочет сделать auto-animatable, где
key
обычно ссылается на свойство получателя, но может также указать специальный триггер анимации (NSAnimationTriggerOrderIn
илиNSAnimationTriggerOrderOut
).Разработчик, реализующий пользовательский подкласс представления, может включить автоматическую анимацию для свойств путем переопределения этого метода, и наличие его возвращает желаемое значение по умолчанию
CAAnimation
разделите на подклассы для использования для каждого из ключей свойства интереса. Переопределение должно подчиниться супер для любых ключей, которые оно в частности не обрабатывает, упрощая наследование спецификаций анимации по умолчанию. Следующее является примером такой реализации.@implementation MyView
+ (id)defaultAnimationForKey:(NSString *)key {
if ([key isEqualToString:@"borderColor"]) {
// By default, animate border color changes with simple linear interpolation to the new color value.
return [CABasicAnimation animation];
} else {
// Defer to super's implementation for any keys we don't specifically handle.
return [super defaultAnimationForKey:key];
}
}
@end
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.5 и позже.
-
Следующие константы определяют ключи, ссылающиеся на переходы, используемые, поскольку представления сделаны видимыми и скрытыми.
Объявление
Objective C
NSString *NSAnimationTriggerOrderIn; NSString *NSAnimationTriggerOrderOut;
Константы
-
NSAnimationTriggerOrderIn
NSAnimationTriggerOrderIn
Ключ, ссылающийся на анимацию перехода, используемую, когда представление становится видимым, или в результате того, чтобы быть вставленным в видимую иерархию представления или в результате представления, больше не устанавливаемого, как скрытый.
Доступный в OS X v10.5 и позже.
-
NSAnimationTriggerOrderOut
NSAnimationTriggerOrderOut
Ключ, ссылающийся на анимацию перехода, используемую, когда представление больше не видимо, или в результате того, чтобы быть удаленным из видимой иерархии представления или в результате набора представления, как скрытый.
Доступный в OS X v10.5 и позже.
-