UICollectionViewTransitionLayout
Наследование
-
NSObject
-
UICollectionViewLayout
-
UICollectionViewTransitionLayout
-
NSObject
-
UICollectionViewLayout
-
UICollectionViewTransitionLayout
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSObject
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
UICollectionViewTransitionLayout
класс является специальным типом объекта расположения, позволяющего Вам реализовать способы поведения при изменении от одного расположения до другого в представлении набора. Можно использовать этот класс как есть или разделить его на подклассы для обеспечения специализированного поведения для приложения. Общее использование для разметок перехода должно создать интерактивные переходы, такие как те, которые управляются устройствами распознавания жеста или сенсорными событиями.
Во время изменения макета представление набора устанавливает этот объект расположения временно для управления переключением. Этот объект расположения определяет расположение каждого элемента путем интерполяции между значениями расположения в текущих и новых объектах расположения. Интерполяция управляется значением в transitionProgress
свойство, которое Вы периодически обновляете от Вашего кода для управления переходом. Например, при использовании этого класса в сочетании с устройством распознавания жеста обработчик для устройства распознавания жеста обновил бы то свойство и лишил бы законной силы расположение.
Если Вы хотите обеспечить больше, чем просто линейный переход от старого до нового расположения в течение долгого времени, необходимо разделить на подклассы и обеспечить атрибуты макета для элементов сами. Разделение на подклассы требует, чтобы Вы переопределили все те же методы, которые Вы переопределили бы при разделении на подклассы UICollectionViewLayout
. Различие - то, что Ваши пользовательские методы могут работать с Вашими устройствами распознавания жеста или коснуться кода события для изменения расположения на основе ввода от пользователя. Например, Вы могли использовать объект пользовательского макета в сочетании с устройством распознавания жеста, чтобы заставить элементы отследить расположение пальца пользователя на экране. Также необходимо реализовать collectionView:transitionLayoutForOldLayout:newLayout:
метод Вашего представления набора делегирует и возвращает Ваш объект пользовательского макета, когда спросили относительно него.
-
Инициализирует и возвращает объект расположения перехода.
Объявление
Swift
init(currentLayout
currentLayout
: UICollectionViewLayout, nextLayoutnewLayout
: 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, forAnimatedKeykey
: String)Параметры
value
Значение Вы хотите сохранить для указанного ключа.
key
Ключ, который Вы определяете для своего пользовательского расположения перехода.
Обсуждение
Используйте этот метод для хранения значения с плавающей точкой определенным ключом, который Вы определяете для своего объекта расположения перехода. Имя ключа должно быть тем, имеющим значение к Вашему объекту расположения. Например, при отслеживании позиции пальца пользователя в течение долгого времени Вы могли бы определить ключи «PositionX” и»PositionY” для отслеживания тех изменений. Каждый раз Вы обновляете значение ключа, записи объекта расположения изменение вместе со значением метки времени. Когда расположение завершено или отменено, те значения могут тогда использоваться для определения скорости, с которой можно выполнить остающиеся анимации.
Для любых ключей Вы устанавливаете использование этого метода, необходимо получить то значение как часть нормального процесса генерации информации об атрибуте макета. Получение значения с помощью
valueForAnimatedKey:
метод (в противоположность получению значения от переменной класса) означает, что, когда представление набора выполняет свои заключительные анимации, Ваши методы макета обеспечивают правильные значения.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращается последний раз значение набора для указанного ключа.
Объявление
Swift
func valueForAnimatedKey(_
key
: String) -> CGFloatПараметры
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 и позже.