UICollisionBehavior
Наследование
-
NSObject -
UIDynamicBehavior -
UICollisionBehavior
-
NSObject -
UIDynamicBehavior -
UICollisionBehavior
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
Поведение коллизии совещается, к указанному массиву динамических элементов, возможности тех элементов участвовать в коллизиях друг с другом и с указанными границами поведения. Поведение коллизии также указывает некоторые характеристики коллизий своих элементов с другими характеристиками, дополнительно указанными a UIDynamicItemBehavior объект.
Динамическим элементом является любой iOS или пользовательский объект, соответствующий UIDynamicItem протокол. UIView и UICollectionViewLayoutAttributes классы реализуют этот протокол, запускающийся в iOS 7.0. Можно использовать пользовательский объект в качестве динамического элемента в таких целях как реакция на вращение или изменения позиции, вычисленные динамическим аниматором — экземпляр UIDynamicAnimator класс.
Для использования поведения коллизии с динамическим элементом выполните эти два шага:
Свяжите элемент с поведением с помощью
addItem:метод, или инициализируют новое поведение коллизии с массивом элементов с помощьюinitWithItems:метод.Включите поведение путем добавления его к аниматору, использующему
addBehavior:метод
Система координат, принадлежащая поведению коллизии и типам динамических элементов, которые можно использовать с поведением, зависеть от того, как Вы инициализировали связанного аниматора. Для получения дополнительной информации считайте Обзор Ссылки класса UIDynamicAnimator.
Можно добавить многократные способы поведения коллизии к динамическому аниматору. Динамический элемент может быть частью любого числа способов поведения коллизии, если те способы поведения принадлежат тому же аниматору. Например, можно указать, что поведение коллизии для ряда говорит, синий, элементы и другой для, скажем, розовых элементов. Когда Вы добавляете оба способов поведения к динамическому аниматору, синие элементы могут столкнуться друг с другом, и розовые элементы могут столкнуться друг с другом, но синий элемент и розовый элемент не столкнулись бы — они проигнорируют друг друга.
По умолчанию, коллизия, элементы поведения могут столкнуться друг с другом и с любыми границами, которые Вы указали для поведения. Если Вы хотите указать, что элементы поведения сталкиваются только друг с другом, или только с границами, явно устанавливают collisionMode свойство.
Можно определить границу коллизии с помощью пути bezier (см. addBoundaryWithIdentifier:forPath: метод) или с линейным сегментом (см. addBoundaryWithIdentifier:fromPoint:toPoint: метод). При использовании поведения коллизии с динамическим аниматором, Вы инициализировали со ссылочным ракурсом или расположением представления набора, можно также указать границу коллизии согласно границам системы координат динамического аниматора (см. setTranslatesReferenceBoundsIntoBoundaryWithInsets: метод).
Для ответа на коллизии реализуйте объект делегата, принимающий UICollisionBehaviorDelegate протокол. Добавьте делегата в поведении с помощью collisionDelegate свойство.
Можно включать поведение коллизии в пользовательское, составное поведение начиная с a UIDynamicBehavior возразите и добавление поведения коллизии с addChildBehavior: метод. Если Вы хотите влиять на поведение коллизии на каждом шаге динамической анимации, реализуйте наследованный action метод.
-
Добавляет динамический элемент к массиву элемента поведения коллизии.
Объявление
Swift
func addItem(_item: UIDynamicItem)Objective C
- (void)addItem:(id<UIDynamicItem>)itemПараметры
itemДинамический элемент для добавления к массиву элемента.
Обсуждение
Можно добавить динамический элемент к одним или более способам поведения коллизии. Например, можно использовать два способов поведения коллизии указать, что элемент A может столкнуться с элементом B и что элемент C может столкнуться с элементом D, но это элементы A и B игнорирует элементы C и D.
Нет никакого жесткого предела числу динамических элементов, которые можно добавить к поведению коллизии. Однако добавление большого количества элементов могло бы привести к влиянию производительности. Обязательно протестируйте Ваши способы поведения на конфигурациях устройства, для которых Вы предназначаетесь.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Инициализирует поведение коллизии с массивом динамических элементов.
Объявление
Swift
init!(itemsitems: [AnyObject])Objective C
- (instancetype)initWithItems:(NSArray *)itemsПараметры
itemsДинамические элементы, что Вы хотите участвовать в поведении коллизии.
Возвращаемое значение
Инициализированное поведение коллизии, или
nilесли была проблема, инициализирующая объект.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет определенный динамический элемент из поведения коллизии.
Объявление
Swift
func removeItem(_item: UIDynamicItem)Objective C
- (void)removeItem:(id<UIDynamicItem>)itemПараметры
itemДинамический элемент, который Вы хотите удалить.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
itemsСвойствоВозвращает набор динамических элементов, которые Вы добавили к поведению коллизии. (только для чтения)
Объявление
Swift
var items: [AnyObject] { get }Objective C
@property(nonatomic, readonly, copy) NSArray *itemsОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Добавляет граница коллизии, указанная как путь Безье, к поведению коллизии.
Объявление
Swift
func addBoundaryWithIdentifier(_identifier: NSCopying, forPathbezierPath: UIBezierPath)Objective C
- (void)addBoundaryWithIdentifier:(id<NSCopying>)identifierforPath:(UIBezierPath *)bezierPathПараметры
identifierПроизвольный идентификатор для границы Вы добавляете.
bezierPathПроизвольный путь Безье, указывающий границу коллизии, которую Вы добавляете.
Система координат и точка источника для пути зависят от того, как Вы инициализировали динамического аниматора (что Вы добавляете поведение к). См. обзор в Ссылке класса UIDynamicAnimator для получения дополнительной информации.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Добавляет граница коллизии, указанная как линейный сегмент, к поведению коллизии.
Объявление
Параметры
identifierПроизвольный идентификатор для границы Вы добавляете.
p1Начальная точка для сегмента границы.
p2Конечная точка для сегмента границы.
Обсуждение
Это - удобный метод на основе
addBoundaryWithIdentifier:forPath:метод. Система координат и источник указывают дляp1иp2параметры зависят от того, как Вы инициализировали динамического аниматора (что Вы добавляете поведение к). См. обзор в Ссылке класса UIDynamicAnimator для получения дополнительной информации.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
boundaryIdentifiersСвойствоНабор граничных идентификаторов, которые Вы добавили к поведению коллизии. (только для чтения)
Объявление
Swift
var boundaryIdentifiers: [AnyObject]? { get }Objective C
@property(nonatomic, readonly, copy) NSArray *boundaryIdentifiersОбсуждение
Если Вы не добавили граничных идентификаторов к поведению коллизии, значение этого свойства
nil.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Возвращает указанную границу Bezier-пути.
Объявление
Swift
func boundaryWithIdentifier(_identifier: NSCopying) -> UIBezierPath?Objective C
- (UIBezierPath *)boundaryWithIdentifier:(id<NSCopying>)identifierПараметры
identifierГраничный идентификатор, который Вы ранее добавили к поведению коллизии.
Возвращаемое значение
Граница Bezier-пути.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
collisionDelegateСвойствоОбъект делегата, что Вы хотите реагировать на коллизии для поведения коллизии.
Объявление
Swift
unowned(unsafe) var collisionDelegate: UICollisionBehaviorDelegate?Objective C
@property(nonatomic, assign, readwrite) id< UICollisionBehaviorDelegate > collisionDelegateОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
collisionModeСвойствоТип краев, участвующих в коллизиях для поведения коллизии.
Объявление
Swift
var collisionMode: UICollisionBehaviorModeObjective C
@property(nonatomic, readwrite) UICollisionBehaviorMode collisionModeОбсуждение
Указать
collisionMode, используйте одно из значений в перечислении UICollisionBehaviorMode. Значение по умолчаниюUICollisionBehaviorModeEverything.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет все ранее указанные границы коллизии из поведения коллизии.
Объявление
Swift
func removeAllBoundaries()Objective C
- (void)removeAllBoundariesОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет определенную границу коллизии из поведения коллизии.
Объявление
Swift
func removeBoundaryWithIdentifier(_identifier: NSCopying)Objective C
- (void)removeBoundaryWithIdentifier:(id<NSCopying>)identifierПараметры
identifierИдентификатор границы Вы хотите удалить.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
setTranslatesReferenceBoundsIntoBoundaryWithInsets (_:) - setTranslatesReferenceBoundsIntoBoundaryWithInsets:Указывает границу коллизии на основе границ ссылочной системы анимации, с дополнительными вставками.
Объявление
Swift
func setTranslatesReferenceBoundsIntoBoundaryWithInsets(_insets: UIEdgeInsets)Objective C
- (void)setTranslatesReferenceBoundsIntoBoundaryWithInsets:(UIEdgeInsets)insetsПараметры
insetsВставки для применения к границам ссылочной системы при определении границы коллизии.
Обсуждение
Результат использования этого метода зависит от того, как Вы инициализировали динамического аниматора (класса
UIDynamicAnimator) то, что Вы добавили поведение коллизии к. См. обзор в Ссылке класса UIDynamicAnimator для обсуждения опций инициализации и режимов для аниматоров.Вот то, как инициализация динамического аниматора влияет на использование этого метода:
Для динамического аниматора только для представления ссылочные границы являются теми из ссылочного ракурса
Для представления набора динамический аниматор ссылочные границы являются теми из расположения представления набора
Для динамического элемента динамический аниматор нет никаких ссылочных границ.
Для поведения коллизии, добавленного к только для представления или представлению набора динамический аниматор, активируйте основанную на ссылке-системой границу коллизии путем установки
translatesReferenceBoundsIntoBoundaryсвойство кYEStrue.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Указывает, активна ли граница на основе ссылочной системы.
Объявление
Swift
var translatesReferenceBoundsIntoBoundary: BoolObjective C
@property(nonatomic, readwrite) BOOL translatesReferenceBoundsIntoBoundaryОбсуждение
Для указания границы коллизии на основе ссылочной системы используйте
setTranslatesReferenceBoundsIntoBoundaryWithInsets:метод.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Типы краев, участвующих в коллизиях для поведения коллизии.
Объявление
Swift
struct UICollisionBehaviorMode : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var Items: UICollisionBehaviorMode { get } static var Boundaries: UICollisionBehaviorMode { get } static var Everything: UICollisionBehaviorMode { get } }Objective C
typedef NS_OPTIONS (NSUInteger, UICollisionBehaviorMode ) { UICollisionBehaviorModeItems = 1 << 0, UICollisionBehaviorModeBoundaries = 1 << 1, UICollisionBehaviorModeEverything = NSUIntegerMax };Константы
-
ItemsUICollisionBehaviorModeItemsУказывает, что динамические элементы, связанные с поведением коллизии, сталкиваются только друг с другом а не с указанными границами коллизии.
Доступный в iOS 7.0 и позже.
-
BoundariesUICollisionBehaviorModeBoundariesУказывает, что динамические элементы, связанные с поведением коллизии, сталкиваются только с указанными границами коллизии и не сталкиваются друг с другом.
Доступный в iOS 7.0 и позже.
-
EverythingUICollisionBehaviorModeEverythingУказывает, что динамические элементы, связанные с поведением коллизии, сталкиваются друг с другом и с указанными границами коллизии.
Это - режим поведения коллизии по умолчанию.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
