UIDynamicAnimator
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
Динамический аниматор обеспечивает связанные с физикой возможности и анимации для его динамических элементов, и обеспечивает контекст для тех анимаций. Это делает это путем посредничания между базовым механизмом физики iOS и динамическими элементами, через поведение возражает, что Вы добавляете к аниматору.
Динамическим элементом является любой iOS или пользовательский объект, соответствующий UIDynamicItem протокол. UIView и UICollectionViewLayoutAttributes классы реализуют этот протокол, запускающийся в iOS 7.0. Можно реализовать этот протокол для использования динамического аниматора с пользовательскими объектами в таких целях как реакция на вращение или изменения позиции, вычисленные аниматором.
Для использования динамики сконфигурируйте один или несколько динамические способы поведения — включая обеспечение каждого с рядом динамических элементов — и затем добавьте те способы поведения к динамическому аниматору.
Вы указываете динамические способы поведения с помощью любого iOS примитивные динамические классы поведения: UIAttachmentBehavior, UICollisionBehavior, UIDynamicItemBehavior, UIGravityBehavior, UIPushBehavior, и UISnapBehavior. Каждый из них обеспечивает параметры конфигурации и позволяет Вам связаться один или несколько динамические элементы к поведению. Для активации поведения добавьте его к аниматору.
Динамический аниматор взаимодействует с каждым из его динамических элементов следующим образом:
Прежде, чем добавить элемент к поведению, Вы указываете стартовую позицию элемента, вращение и границы (для этого используют свойства класса элемента, такой как
center,transform, иboundsсвойства в случае aUIView- основанный элемент)После того, как Вы добавите поведение к аниматору, аниматор вступает во владение: это обновляет позицию и вращение элемента, поскольку анимация продолжается (см.
UIDynamicItemпротокол)Можно программно обновить состояние элемента посреди анимации, после которой аниматор берет на себя назад управление анимации элемента относительно состояния, которое Вы указали (см.
updateItemUsingCurrentState:метод)
Можно определить составные способы поведения с помощью addChildBehavior: метод UIDynamicBehavior родительский класс поведения. Набор способов поведения, которые Вы добавляете к аниматору, составляет иерархию поведения. Каждый экземпляр поведения, который Вы связываете с аниматором, может присутствовать только один раз в иерархии.
Для найма динамического аниматора сначала идентифицируйте тип динамических элементов, которые Вы хотите анимировать. Этот выбор определяет, какой инициализатор вызвать, и это поочередно определяет, как система координат будит набор. Эти три способа инициализировать аниматора, динамические элементы, которые можно тогда использовать, и получающаяся система координат, следующие:
Для анимации представлений создайте аниматора с
initWithReferenceView:метод. Система координат ссылочного ракурса служит системой координат для способов поведения и элементов аниматора. Каждый динамический элемент, который Вы связываете с этим видом аниматора, должен быть aUIViewвозразите и должен убывать от ссылочного ракурса.Можно определить границу, для элементов, участвующих в поведении коллизии, относительно границ ссылочного ракурса. Посмотрите
setTranslatesReferenceBoundsIntoBoundaryWithInsets:метод.Для анимации представлений набора создайте аниматора с
initWithCollectionViewLayout:метод. Получающийся аниматор использует расположение представления набора (объектUICollectionViewLayoutкласс) для его системы координат. Динамические элементы в этом виде аниматора должны бытьUICollectionViewLayoutAttributesобъекты, которые являются частью расположения.Можно определить границу, для элементов, участвующих в поведении коллизии, относительно границ расположения представления набора. Посмотрите
setTranslatesReferenceBoundsIntoBoundaryWithInsets:метод.Аниматор представления набора автоматически вызывает
invalidateLayoutметод по мере необходимости, и автоматически паузы и анимация резюме, как надлежащий, когда Вы изменяете расположение представления набора.Нанять динамического аниматора с другими объектами, соответствующими
UIDynamicItemпротокол, создайте аниматора с наследованнымinitметод. Получающийся аниматор использует абстрактную систему координат, не связанную к экрану или к любому представлению.Нет никакой ссылочной границы для обращения к при определении границы коллизии для использования с этим видом аниматора. Однако Вы можете все еще, в поведении коллизии, указывать пользовательские границы, как описано в Ссылке класса UICollisionBehavior.
Все типы динамических аниматоров совместно используют следующие характеристики:
Каждый динамический аниматор независим от других динамических аниматоров, которых Вы создаете
Можно связать данный динамический элемент с многократными способами поведения, если те способы поведения принадлежат тому же аниматору
Аниматор автоматически паузы, когда все его элементы в покое, и автоматически возобновляют, когда параметр поведения изменяется или поведение или элемент, добавлен или удален
Можно реализовать делегата для реакции на изменения в состоянии паузы/возобновления аниматора, с помощью dynamicAnimatorDidPause: и dynamicAnimatorWillResume: методы UIDynamicAnimatorDelegate протокол.
-
Инициализирует динамического аниматора с указанным представлением как его ссылочный ракурс.
Объявление
Swift
init(referenceViewview: UIView)Objective C
- (instancetype)initWithReferenceView:(UIView *)viewПараметры
viewПредставление для динамического аниматора, названного ссылочным ракурсом.
Возвращаемое значение
Инициализированный динамический аниматор, или
nilесли была проблема, инициализирующая объект.Обсуждение
При инициализации динамического аниматора с этим методом способы поведения (и их динамические элементы), что Вы добавляете к аниматору, используют систему координат ссылочного ракурса.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Инициализирует динамического аниматора с указанным расположением представления набора.
Объявление
Swift
init(collectionViewLayoutlayout: UICollectionViewLayout)Objective C
- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layoutПараметры
layoutРасположение представления набора для динамического аниматора, служа ссылочным ракурсом для динамического аниматора в режиме представления набора.
Возвращаемое значение
Инициализированный динамический аниматор, или
nilесли была проблема, инициализирующая объект.Обсуждение
При инициализации динамического аниматора с этим методом способы поведения (и их динамические элементы), что Вы добавляете к аниматору, используют систему координат расположения представления набора.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Возвращает динамические элементы, от способов поведения аниматора, пересекающих указанный прямоугольник.
Объявление
Swift
func itemsInRect(_rect: CGRect) -> [AnyObject]Параметры
rectПрямоугольник Вы интересуетесь.
Возвращаемое значение
Динамические элементы, от способов поведения аниматора, пересекающих указанный прямоугольник.
Обсуждение
Система координат, принадлежащая
rectпараметр зависит от того, как Вы инициализировали аниматора, как описано в Обзоре в этом документе.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Добавляет динамическое поведение к динамическому аниматору.
Объявление
Swift
func addBehavior(_behavior: UIDynamicBehavior!)Objective C
- (void)addBehavior:(UIDynamicBehavior *)behaviorПараметры
behaviorОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет указанное динамическое поведение от динамического аниматора.
Объявление
Swift
func removeBehavior(_behavior: UIDynamicBehavior!)Objective C
- (void)removeBehavior:(UIDynamicBehavior *)behaviorПараметры
behaviorДинамический экземпляр поведения, который Вы хотите удалить от аниматора.
Динамический аниматор игнорирует Ваше использование этого метода если Вы:
Обеспечьте a
nilзначениеОбеспечьте динамический экземпляр поведения, который не является частью иерархии поведения аниматора
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет все динамические способы поведения от динамического аниматора.
Объявление
Swift
func removeAllBehaviors()Objective C
- (void)removeAllBehaviorsОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Возвращает временной интервал, так как динамический аниматор начал работать.
Возвращаемое значение
Прошедшее время, так как динамический аниматор начал работать.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
runningСвойствоВозвраты
YEStrueесли работает динамический аниматор. (только для чтения)Объявление
Swift
var running: Bool { get }Objective C
@property(nonatomic, readonly, getter=isRunning) BOOL runningОбсуждение
Представления, связанные со способами поведения аниматора, могут сменить положение, или изменение преобразовывают только, когда работает аниматор. В целях оптимизации iOS может приостановить и затем перезапустить аниматора. Используйте этот метод, если необходимо проверить, подвергаются ли представления в настоящее время изменениям в позиции или преобразовывают.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
behaviorsСвойствоДинамические способы поведения, которыми управляет динамический аниматор. (только для чтения)
Объявление
Swift
var behaviors: [AnyObject] { get }Objective C
@property(nonatomic, readonly, copy) NSArray *behaviorsОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
referenceViewСвойствоПредставление, что динамический аниматор был инициализирован с. (только для чтения)
Объявление
Swift
var referenceView: UIView? { get }Objective C
@property(nonatomic, readonly) UIView *referenceViewОбсуждение
Это свойство имеет значение только для динамического аниматора, инициализированного с помощью
initWithReferenceView:метод.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
delegateСвойствоДелегат к ответу на приостановку или возобновление анимации.
Объявление
Swift
unowned(unsafe) var delegate: UIDynamicAnimatorDelegate?Objective C
@property(nonatomic, assign) id< UIDynamicAnimatorDelegate > delegateОбсуждение
Методы для динамического делегата аниматора описаны в Ссылке на протокол UIDynamicAnimatorDelegate.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Просит динамический аниматор читать текущее состояние динамического элемента, заменяя внутреннее представление аниматора состояния элемента.
Объявление
Swift
func updateItemUsingCurrentState(_item: UIDynamicItem)Objective C
- (void)updateItemUsingCurrentState:(id<UIDynamicItem>)itemПараметры
itemДинамический элемент, состояние которого было изменено Вашим приложением.
Обсуждение
Динамический аниматор автоматически читает начальное состояние (позиция и вращение) каждого динамического элемента, который Вы добавляете к нему, и затем берет на себя ответственность за обновление состояния элемента. При активном изменении состояния динамического элемента после того, как Вы добавили его к динамическому аниматору, вызовите этот метод, чтобы попросить, чтобы аниматор считал и включил новое состояние.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удобный метод для возврата атрибутов макета для набора просматривает ячейку.
Объявление
Swift
func layoutAttributesForCellAtIndexPath(_indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!Objective C
- (UICollectionViewLayoutAttributes *)layoutAttributesForCellAtIndexPath:(NSIndexPath *)indexPathПараметры
indexPathИндексный путь для ячейки, атрибуты макета которой Вы хотите.
Возвращаемое значение
Атрибуты макета представления набора для указанного набора просматривают ячейку.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
layoutAttributesForDecorationViewOfKind (_: atIndexPath:) - layoutAttributesForDecorationViewOfKind:atIndexPath:Удобный метод для возврата атрибутов макета для набора просматривает представление художественного оформления.
Объявление
Swift
func layoutAttributesForDecorationViewOfKind(_decorationViewKind: String, atIndexPathindexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!Objective C
- (UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)decorationViewKindatIndexPath:(NSIndexPath *)indexPathПараметры
decorationViewKindДобрый идентификатор для указанного представления художественного оформления.
indexPathИндексный путь для ячейки, атрибуты макета представления художественного оформления которой Вы хотите.
Возвращаемое значение
Атрибуты макета представления набора для указанного представления художественного оформления.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
layoutAttributesForSupplementaryViewOfKind (_: atIndexPath:) - layoutAttributesForSupplementaryViewOfKind:atIndexPath:Удобный метод для возврата атрибутов макета для набора просматривает дополнительное представление.
Объявление
Swift
func layoutAttributesForSupplementaryViewOfKind(_kind: String, atIndexPathindexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!Objective C
- (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kindatIndexPath:(NSIndexPath *)indexPathПараметры
kindСтрока, идентифицирующая тип дополнительного представления, атрибуты макета которого Вы хотите.
indexPathИндексный путь для ячейки, дополнительные атрибуты макета представления которой Вы хотите.
Возвращаемое значение
Атрибуты макета представления набора для указанного дополнительного представления.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
