CATransaction
CATransaction
Базовый механизм Анимации для пакетной обработки многоуровнево-древовидных операций в атомарные обновления к дереву рендеринга. Каждая модификация к дереву уровня должна быть частью транзакции. Вложенные транзакции поддерживаются.
Базовая Анимация поддерживает два типа транзакций: неявные транзакции и явные транзакции. Неявные транзакции создаются автоматически, когда дерево уровня изменяется потоком без активной транзакции и фиксируется автоматически, когда цикл выполнения потока затем выполняет итерации. Когда приложение отправляет, явные транзакции происходят CATransaction
класс a begin
сообщение прежде, чем изменить дерево уровня и a commit
сообщение впоследствии.
CATransaction
позволяет Вам переопределять свойства анимации по умолчанию, установленные для animatable свойств. Можно настроить продолжительность, синхронизировав функцию, инициировали ли изменения в свойствах анимации и обеспечивают обработчик, сообщающий Вам, когда завершаются все анимации от группы транзакции.
Во время транзакции можно временно получить рекурсивную спин-блокировку для управления атомарностью свойства.
Оператор импорта
Swift
import QuartzCore
Objective C
@import QuartzCore;
Доступность
Доступный в OS X v10.5 и позже.
-
Начните новую транзакцию для текущего потока.
Объявление
Swift
class func begin()
Objective C
+ (void)begin
Обсуждение
Если существует тот, транзакция вкладывается в текущей операции потока.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Фиксируйте все изменения, внесенные во время текущей операции.
Объявление
Swift
class func commit()
Objective C
+ (void)commit
Специальные замечания
Если никакая текущая операция не существует, повышает исключение.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.5 и позже.
-
Сбросы любая существующая неявная транзакция.
Объявление
Swift
class func flush()
Objective C
+ (void)flush
Обсуждение
Задерживает фиксацию, пока не завершились любые вложенные явные транзакции.
Сброс обычно вызывают автоматически в конце текущего runloop, независимо от runloop режима. Если Ваше приложение не имеет runloop, необходимо вызвать этот метод явно.
Однако необходимо попытаться избежать вызывать
flush
явно. Путем разрешенияflush
для выполнения во время runloop приложение достигнет лучшей производительности, атомарные экранные обновления будут сохранены, и транзакции и анимации, работающие от транзакции до транзакции, будут продолжать функционировать.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает продолжительность анимации, используемую всеми анимациями в этой группе транзакции.
Объявление
Swift
class func animationDuration() -> CFTimeInterval
Objective C
+ (CFTimeInterval)animationDuration
Возвращаемое значение
Интервал времени, используемый в качестве продолжительности.
Обсуждение
Можно получить продолжительность анимации для определенной транзакции путем вызова
valueForKey:
метод объекта транзакции и выясненияkCATransactionAnimationDuration
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает продолжительность анимации, используемую всеми анимациями в этой группе транзакции.
Объявление
Swift
class func setAnimationDuration(_
duration
: CFTimeInterval)Objective C
+ (void)setAnimationDuration:(CFTimeInterval)
duration
Параметры
duration
Интервал времени, используемый в качестве продолжительности.
Обсуждение
Можно также установить продолжительность анимации для определенного объекта транзакции путем вызова
setValue:forKey:
метод того объекта и указанияkCATransactionAnimationDuration
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает функцию синхронизации, используемую для всех анимаций в этой группе транзакции.
Объявление
Swift
class func animationTimingFunction() -> CAMediaTimingFunction!
Objective C
+ (CAMediaTimingFunction *)animationTimingFunction
Возвращаемое значение
Экземпляр
CAMediaTimingFunction
.Обсуждение
Это - удобный метод, возвращающийся
CAMediaTimingFunction
дляvalueForKey:
значение, возвращенноеkCATransactionAnimationTimingFunction
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает функцию синхронизации, используемую для всех анимаций в этой группе транзакции.
Объявление
Swift
class func setAnimationTimingFunction(_
function
: CAMediaTimingFunction!)Objective C
+ (void)setAnimationTimingFunction:(CAMediaTimingFunction *)
function
Параметры
function
Экземпляр
CAMediaTimingFunction
.Обсуждение
Это - удобный метод, устанавливающий
CAMediaTimingFunction
дляvalueForKey:
значениеkCATransactionAnimationTimingFunction
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвраты, подавлены ли действия, инициированные в результате изменений свойства, внесенных в этой группе транзакции.
Объявление
Swift
class func disableActions() -> Bool
Objective C
+ (BOOL)disableActions
Возвращаемое значение
YES
true
если отключены действия.Обсуждение
Это - удобный метод, возвращающийся
boolValue
дляvalueForKey:
значение, возвращенноеkCATransactionDisableActions
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Наборы, подавлены ли действия, инициированные в результате изменений свойства, внесенных в этой группе транзакции.
Объявление
Swift
class func setDisableActions(_
flag
: Bool)Objective C
+ (void)setDisableActions:(BOOL)
flag
Параметры
flag
YES
true
, если должны быть отключены действия.Обсуждение
Это - вызывающий удобный метод
setValue:forKey:
сNSNumber
содержа aYES
true
дляkCATransactionDisableActions
ключ.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает блочный объект завершения.
Объявление
Swift
class func completionBlock() -> (() -> Void)!
Objective C
+ (void (^)(void))completionBlock
Обсуждение
Посмотрите
setCompletionBlock:
поскольку описание роли завершения блокирует объект.Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает блочный объект завершения.
Объявление
Swift
class func setCompletionBlock(_
block
: (() -> Void)!)Objective C
+ (void)setCompletionBlock:(void (^)(void))
block
Параметры
block
Когда анимации для этой группы транзакции завершаются, блочный объект вызвал.
Блочный объект не берет параметров и не возвращает значения.
Обсуждение
Блочный объект завершения, который, как гарантируют, вызовут (на основном потоке), как только все анимации, впоследствии добавленные этой группой транзакции, завершились (или были удалены.), Если никакие анимации не добавляются, прежде чем группа текущей операции фиксируется (или блок завершения установлен в различное значение,), блок будет сразу вызван.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Попытки получить рекурсивную блокировку спин-блокировки, гарантируя, который возвратил значения уровня, допустимы, пока не разблокировано.
Объявление
Swift
class func lock()
Objective C
+ (void)lock
Обсуждение
Базовая Анимация использует модель данных, обещающую не повредить внутренние структуры данных, когда вызвано от многократных потоков одновременно, но не, что данные возвратились, все еще допустимо, если свойство было допустимо на другом потоке. Путем блокировки во время транзакции можно гарантировать данные, считанные, измененные и установленные, правильно управляется.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Оставляет ранее полученную блокировку транзакции.
Объявление
Swift
class func unlock()
Objective C
+ (void)unlock
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает произвольные включенные данные для указанного ключа.
Объявление
Swift
class func setValue(_
anObject
: AnyObject!, forKeykey
: String!)Objective C
+ (void)setValue:(id)
anObject
forKey:(NSString *)key
Параметры
anObject
Значение для ключа, идентифицированного
key
.key
Имя одного из свойств получателя.
Обсуждение
Вложенные транзакции вложили объем данных; устанавливание ключа всегда устанавливает его в самом внутреннем объеме.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает произвольные включенные данные, указанные данным ключом.
Объявление
Swift
class func valueForKey(_
key
: String!) -> AnyObject!Objective C
+ (id)valueForKey:(NSString *)
key
Параметры
key
Имя одного из свойств получателя.
Возвращаемое значение
Значение для данных указано ключом.
Обсуждение
Вложенные транзакции вложили объем данных. Запрос значения для ключа сначала ищет самый внутренний объем, тогда транзакции включения.
Оператор импорта
Objective C
@import QuartzCore;
Swift
import QuartzCore
Доступность
Доступный в OS X v10.5 и позже.
-
Эти константы определяют ключи свойства, используемые
valueForKey:
иsetValue:forKey:
.Объявление
Swift
let kCATransactionAnimationDuration: NSString! let kCATransactionDisableActions: NSString! let kCATransactionAnimationTimingFunction: NSString! let kCATransactionCompletionBlock: NSString!
Objective C
NSString * const kCATransactionAnimationDuration; NSString * const kCATransactionDisableActions; NSString * const kCATransactionAnimationTimingFunction; NSString * const kCATransactionCompletionBlock;
Константы
-
kCATransactionAnimationDuration
kCATransactionAnimationDuration
Продолжительность, в секундах, для анимаций инициирована в группе транзакции. Значение для этого ключа должно быть экземпляром
NSNumber
.Доступный в OS X v10.5 и позже.
-
kCATransactionDisableActions
kCATransactionDisableActions
Если
YES
true
, подавлены неявные действия для изменений свойства, внесенных в группе транзакции. Значение для этого ключа должно быть экземпляромNSNumber
.Доступный в OS X v10.5 и позже.
-
kCATransactionAnimationTimingFunction
kCATransactionAnimationTimingFunction
Экземпляр
CAMediaTimingFunction
это переопределяет функцию синхронизации для всех анимаций, инициированных в группе транзакции.Доступный в OS X v10.6 и позже.
-
kCATransactionCompletionBlock
kCATransactionCompletionBlock
Блочный объект завершения, который, как гарантируют, вызовут (на основном потоке), как только все анимации, впоследствии добавленные этой группой транзакции, завершились (или были удалены.), Если никакие анимации не добавляются, прежде чем группа текущей операции фиксируется (или блок завершения установлен в различное значение,), блок будет сразу вызван.
Доступный в OS X v10.6 и позже.
-