Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы UIKit ссылка класса UICollisionBehavior

Опции
Развертывание Target:

На этой странице
Язык:

UICollisionBehavior

Наследование


Соответствует


Оператор импорта


Swift

import UIKit

Objective C

@import UIKit;

Доступность


Доступный в iOS 7.0 и позже.

Поведение коллизии совещается, к указанному массиву динамических элементов, возможности тех элементов участвовать в коллизиях друг с другом и с указанными границами поведения. Поведение коллизии также указывает некоторые характеристики коллизий своих элементов с другими характеристиками, дополнительно указанными a UIDynamicItemBehavior объект.

Динамическим элементом является любой iOS или пользовательский объект, соответствующий UIDynamicItem протокол. UIView и UICollectionViewLayoutAttributes классы реализуют этот протокол, запускающийся в iOS 7.0. Можно использовать пользовательский объект в качестве динамического элемента в таких целях как реакция на вращение или изменения позиции, вычисленные динамическим аниматором — экземпляр UIDynamicAnimator класс.

Для использования поведения коллизии с динамическим элементом выполните эти два шага:

  1. Свяжите элемент с поведением с помощью addItem: метод, или инициализируют новое поведение коллизии с массивом элементов с помощью initWithItems: метод.

  2. Включите поведение путем добавления его к аниматору, использующему 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!(items items: [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, forPath bezierPath: UIBezierPath)

    Objective C

    - (void)addBoundaryWithIdentifier:(id<NSCopying>)identifier forPath:(UIBezierPath *)bezierPath

    Параметры

    identifier

    Произвольный идентификатор для границы Вы добавляете.

    bezierPath

    Произвольный путь Безье, указывающий границу коллизии, которую Вы добавляете.

    Система координат и точка источника для пути зависят от того, как Вы инициализировали динамического аниматора (что Вы добавляете поведение к). См. обзор в Ссылке класса UIDynamicAnimator для получения дополнительной информации.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Добавляет граница коллизии, указанная как линейный сегмент, к поведению коллизии.

    Объявление

    Swift

    func addBoundaryWithIdentifier(_ identifier: NSCopying, fromPoint p1: CGPoint, toPoint p2: CGPoint)

    Objective C

    - (void)addBoundaryWithIdentifier:(id<NSCopying>)identifier fromPoint:(CGPoint)p1 toPoint:(CGPoint)p2

    Параметры

    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: UICollisionBehaviorMode

    Objective 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 и позже.

  • Указывает границу коллизии на основе границ ссылочной системы анимации, с дополнительными вставками.

    Объявление

    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: Bool

    Objective 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(rawValue rawValue: 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 };

    Константы

    • Items

      UICollisionBehaviorModeItems

      Указывает, что динамические элементы, связанные с поведением коллизии, сталкиваются только друг с другом а не с указанными границами коллизии.

      Доступный в iOS 7.0 и позже.

    • Boundaries

      UICollisionBehaviorModeBoundaries

      Указывает, что динамические элементы, связанные с поведением коллизии, сталкиваются только с указанными границами коллизии и не сталкиваются друг с другом.

      Доступный в iOS 7.0 и позже.

    • Everything

      UICollisionBehaviorModeEverything

      Указывает, что динамические элементы, связанные с поведением коллизии, сталкиваются друг с другом и с указанными границами коллизии.

      Это - режим поведения коллизии по умолчанию.

      Доступный в iOS 7.0 и позже.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 7.0 и позже.