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

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

Разработчик

Ссылка класса UICollectionViewTransitionLayout

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

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

UICollectionViewTransitionLayout

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


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


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


Swift

import UIKit

Objective C

@import UIKit;

Доступность


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

UICollectionViewTransitionLayout класс является специальным типом объекта расположения, позволяющего Вам реализовать способы поведения при изменении от одного расположения до другого в представлении набора. Можно использовать этот класс как есть или разделить его на подклассы для обеспечения специализированного поведения для приложения. Общее использование для разметок перехода должно создать интерактивные переходы, такие как те, которые управляются устройствами распознавания жеста или сенсорными событиями.

Во время изменения макета представление набора устанавливает этот объект расположения временно для управления переключением. Этот объект расположения определяет расположение каждого элемента путем интерполяции между значениями расположения в текущих и новых объектах расположения. Интерполяция управляется значением в transitionProgress свойство, которое Вы периодически обновляете от Вашего кода для управления переходом. Например, при использовании этого класса в сочетании с устройством распознавания жеста обработчик для устройства распознавания жеста обновил бы то свойство и лишил бы законной силы расположение.

Если Вы хотите обеспечить больше, чем просто линейный переход от старого до нового расположения в течение долгого времени, необходимо разделить на подклассы и обеспечить атрибуты макета для элементов сами. Разделение на подклассы требует, чтобы Вы переопределили все те же методы, которые Вы переопределили бы при разделении на подклассы UICollectionViewLayout. Различие - то, что Ваши пользовательские методы могут работать с Вашими устройствами распознавания жеста или коснуться кода события для изменения расположения на основе ввода от пользователя. Например, Вы могли использовать объект пользовательского макета в сочетании с устройством распознавания жеста, чтобы заставить элементы отследить расположение пальца пользователя на экране. Также необходимо реализовать collectionView:transitionLayoutForOldLayout:newLayout: метод Вашего представления набора делегирует и возвращает Ваш объект пользовательского макета, когда спросили относительно него.

  • Инициализирует и возвращает объект расположения перехода.

    Объявление

    Swift

    init(currentLayout currentLayout: UICollectionViewLayout, nextLayout newLayout: UICollectionViewLayout)

    Objective C

    - (instancetype)initWithCurrentLayout:(UICollectionViewLayout *)currentLayout nextLayout:(UICollectionViewLayout *)newLayout

    Параметры

    currentLayout

    Объект расположения, использующийся в настоящее время представлением набора.

    newLayout

    Новый объект расположения, устанавливающийся в представление набора.

    Возвращаемое значение

    Инициализированное расположение перехода возражает или nil если не мог бы быть создан объект.

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • transitionProgress Свойство

    Процент завершения перехода.

    Объявление

    Swift

    var transitionProgress: CGFloat

    Objective C

    @property(assign, nonatomic) CGFloat transitionProgress

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Устанавливает значение для animatable ключа.

    Объявление

    Swift

    func updateValue(_ value: CGFloat, forAnimatedKey key: String)

    Objective C

    - (void)updateValue:(CGFloat)value forAnimatedKey:(NSString *)key

    Параметры

    value

    Значение Вы хотите сохранить для указанного ключа.

    key

    Ключ, который Вы определяете для своего пользовательского расположения перехода.

    Обсуждение

    Используйте этот метод для хранения значения с плавающей точкой определенным ключом, который Вы определяете для своего объекта расположения перехода. Имя ключа должно быть тем, имеющим значение к Вашему объекту расположения. Например, при отслеживании позиции пальца пользователя в течение долгого времени Вы могли бы определить ключи «PositionX” и»PositionY” для отслеживания тех изменений. Каждый раз Вы обновляете значение ключа, записи объекта расположения изменение вместе со значением метки времени. Когда расположение завершено или отменено, те значения могут тогда использоваться для определения скорости, с которой можно выполнить остающиеся анимации.

    Для любых ключей Вы устанавливаете использование этого метода, необходимо получить то значение как часть нормального процесса генерации информации об атрибуте макета. Получение значения с помощью valueForAnimatedKey: метод (в противоположность получению значения от переменной класса) означает, что, когда представление набора выполняет свои заключительные анимации, Ваши методы макета обеспечивают правильные значения.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

    См. также

    – valueForAnimatedKey:

  • Возвращается последний раз значение набора для указанного ключа.

    Объявление

    Swift

    func valueForAnimatedKey(_ key: String) -> CGFloat

    Objective C

    - (CGFloat)valueForAnimatedKey:(NSString *)key

    Параметры

    key

    Ключ, значение которого Вы устанавливаете использование updateValue:forAnimatedKey: метод.

    Возвращаемое значение

    Последний набор значений для ключа.

    Обсуждение

    Используйте этот метод для получения значений с плавающей точкой, которые полезны при разметке содержания представления набора. Ключ, который Вы указываете, является строкой, которую Вы определяете, и это имеет некоторое значение к Вашей реализации. В точках во время интерактивного перехода можно присвоить новые значения тому ключу с помощью updateValue:forAnimatedKey: метод.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • currentLayout Свойство

    Объект текущего макета представления набора. (только для чтения)

    Объявление

    Swift

    var currentLayout: UICollectionViewLayout! { get }

    Objective C

    @property(readonly, nonatomic) UICollectionViewLayout *currentLayout

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • nextLayout Свойство

    Новый объект расположения представления набора. (только для чтения)

    Объявление

    Swift

    var nextLayout: UICollectionViewLayout! { get }

    Objective C

    @property(readonly, nonatomic) UICollectionViewLayout *nextLayout

    Обсуждение

    Этот объект обеспечивает атрибуты макета, представляющие новую позицию элементов в представлении набора. Если переход завершается как ожидалось, представление набора анимирует свои элементы к позициям, предоставленным этим объектом.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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