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

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

Разработчик

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

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

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

UICollectionViewLayout

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


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


Swift

import UIKit

Objective C

@import UIKit;

Доступность


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

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

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

Разделение на подклассы примечаний

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

Представления набора имеют три типа визуальных элементов, которые должны быть размечены:

  • Ячейки являются основными элементами, расположенными расположением. Каждая ячейка представляет единственный элемент данных в наборе. Представление набора может иметь единственную группу ячеек, или оно может разделить те ячейки на многократные разделы. Основное задание объекта расположения должно расположить ячейки в предметной области представления набора.

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

  • Представления художественного оформления являются визуальными украшениями, которые не могут быть выбраны и по сути не связываются к данным представления набора. Представления художественного оформления являются другим типом дополнительного представления. Как дополнительные представления, они являются дополнительными и их использование, и размещение определяется объектом расположения.

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

Методы для переопределения

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

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

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

В дополнение к этим методам можно также переопределить prepareForCollectionViewUpdates: обработать любую связанную с расположением подготовку. Можно также переопределить finalizeCollectionViewUpdates метод и использование это, чтобы добавить анимации к полному блоку анимации или реализовать любые заключительные связанные с расположением задачи.

Оптимизация производительности расположения Используя контексты аннулирования

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

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

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

  • collectionView Свойство

    Представление набора в настоящее время возражает использующий этот объект расположения. (только для чтения)

    Объявление

    Swift

    var collectionView: UICollectionView? { get }

    Objective C

    @property(nonatomic, readonly) UICollectionView *collectionView

    Обсуждение

    Объект представления набора устанавливает значение этого свойства, когда новый объект расположения присваивается ему.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает ширину и высоту содержания представления набора.

    Объявление

    Swift

    func collectionViewContentSize() -> CGSize

    Objective C

    - (CGSize)collectionViewContentSize

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

    Ширина и высота содержания представления набора.

    Обсуждение

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

    Реализация по умолчанию этого метода возвраты CGSizeZero.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает класс для использования при создании объектов атрибутов макета.

    Объявление

    Swift

    class func layoutAttributesClass() -> AnyClass

    Objective C

    + (Class)layoutAttributesClass

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

    Класс для использования для объектов атрибутов макета.

    Обсуждение

    Если Вы разделяете на подклассы UICollectionViewLayoutAttributes для управления дополнительными атрибутами макета необходимо переопределить этот метод и возвратить пользовательский подкласс. Методы для создания атрибутов макета используют этот класс при создании новых объектов атрибутов макета.

    Этот метод предназначает для подклассификаторов только и не должен вызывать Ваш код.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Говорит объекту расположения обновить текущий макет.

    Объявление

    Swift

    func prepareLayout()

    Objective C

    - (void)prepareLayout

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

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

    Объявление

    Swift

    func layoutAttributesForElementsInRect(_ rect: CGRect) -> [AnyObject]?

    Objective C

    - (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect

    Параметры

    rect

    Прямоугольник (указанный в системе координат представления набора) содержащий целевые представления.

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

    Массив UICollectionViewLayoutAttributes объекты, представляющие информацию макета для ячеек и представлений. Возвраты реализации по умолчанию nil.

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает атрибуты макета для элемента в указанном индексном пути.

    Объявление

    Swift

    func layoutAttributesForItemAtIndexPath(_ indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!

    Objective C

    - (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath

    Параметры

    indexPath

    Индексный путь элемента.

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

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

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает атрибуты макета для указанного дополнительного представления.

    Объявление

    Swift

    func layoutAttributesForSupplementaryViewOfKind(_ kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!

    Objective C

    - (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

    Параметры

    kind

    Строка, идентифицирующая тип дополнительного представления.

    indexPath

    Индексный путь представления.

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

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

    Обсуждение

    Если Ваш объект расположения определяет какие-либо дополнительные представления, необходимо переопределить этот метод и использовать его для возврата информации макета для тех представлений.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает атрибуты макета для указанного представления художественного оформления.

    Объявление

    Swift

    func layoutAttributesForDecorationViewOfKind(_ decorationViewKind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes!

    Objective C

    - (UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)decorationViewKind atIndexPath:(NSIndexPath *)indexPath

    Параметры

    decorationViewKind

    Строка, идентифицирующая тип представления художественного оформления.

    indexPath

    Индексный путь представления художественного оформления.

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

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

    Обсуждение

    Если Ваш объект расположения определяет какие-либо представления художественного оформления, необходимо переопределить этот метод и использовать его для возврата информации макета для тех представлений.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает смещение содержания для использования после анимированного обновления расположения или изменения.

    Объявление

    Swift

    func targetContentOffsetForProposedContentOffset(_ proposedContentOffset: CGPoint) -> CGPoint

    Objective C

    - (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset

    Параметры

    proposedContentOffset

    Предложенная точка (в координатном пространстве представления содержания представления набора) для верхнего левого угла видимого содержания. Это представляет точку, которую представление набора вычислило как наиболее вероятное значение для использования в конце анимации.

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

    Смещение содержания, которое Вы хотите использовать вместо этого. Реализация по умолчанию этого метода возвращает значение в proposedContentOffset параметр.

    Обсуждение

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

    Представление набора вызывает этот метод после вызова prepareLayout и collectionViewContentSize методы.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает точку, в которой можно прекратить прокручивать.

    Объявление

    Swift

    func targetContentOffsetForProposedContentOffset(_ proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint

    Objective C

    - (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity

    Параметры

    proposedContentOffset

    Предложенная точка (в представлении содержания представления набора), в котором можно прекратить прокручивать. Это - значение, в котором естественно остановилась бы прокрутка, если бы не были внесены никакие корректировки. Точка отражает верхний левый угол видимого содержания.

    velocity

    Текущая скорость прокрутки и вдоль горизонтальных и вдоль вертикальных осей. Это значение измеряется в точках в секунду.

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

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

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Уведомляет, что расположение возражает, что содержание представления набора собирается измениться.

    Объявление

    Swift

    func prepareForCollectionViewUpdates(_ updateItems: [AnyObject]!)

    Objective C

    - (void)prepareForCollectionViewUpdates:(NSArray *)updateItems

    Параметры

    updateItems

    Массив UICollectionViewUpdateItem объекты, идентифицирующие внесенные изменения.

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Выполняет любые дополнительные анимации, или очистите необходимый во время обновления представления набора.

    Объявление

    Swift

    func finalizeCollectionViewUpdates()

    Objective C

    - (void)finalizeCollectionViewUpdates

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

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

    Объявление

    Swift

    func indexPathsToInsertForSupplementaryViewOfKind(_ kind: String) -> [AnyObject]

    Objective C

    - (NSArray *)indexPathsToInsertForSupplementaryViewOfKind:(NSString *)kind

    Параметры

    kind

    Определенный тип дополнительного представления.

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

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

    Обсуждение

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

    Представление набора вызывает этот метод между своими вызовами к prepareForCollectionViewUpdates: и finalizeCollectionViewUpdates.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает массив индексных путей, представляющих представления художественного оформления для добавления.

    Объявление

    Swift

    func indexPathsToInsertForDecorationViewOfKind(_ kind: String) -> [AnyObject]

    Objective C

    - (NSArray *)indexPathsToInsertForDecorationViewOfKind:(NSString *)kind

    Параметры

    kind

    Определенный тип представления художественного оформления.

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

    Массив NSIndexPath объекты, указывающие расположение новых представлений художественного оформления или пустого массива, если Вы не хотите добавлять какие-либо представления художественного оформления.

    Обсуждение

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

    Представление набора вызывает этот метод между своими вызовами к prepareForCollectionViewUpdates: и finalizeCollectionViewUpdates.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает стартовую информацию макета для элемента, вставляемого в представление набора.

    Объявление

    Swift

    func initialLayoutAttributesForAppearingItemAtIndexPath(_ itemIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath

    Параметры

    itemIndexPath

    Индексный путь вставляемого элемента. Можно использовать этот путь для определения местоположения элемента в источнике данных представления набора.

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

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

    Обсуждение

    Этот метод вызывают после prepareForCollectionViewUpdates: метод и перед finalizeCollectionViewUpdates метод для любых элементов, собирающихся быть вставленными. Ваша реализация должна возвратить информацию макета, описывающую начальную позицию и состояние элемента. Представление набора использует эту информацию в качестве начальной точки для любых анимаций. (Конечная точка анимации является новым расположением элемента в представлении набора.), Если Вы возвращаетесь nil, объект расположения использует заключительные атрибуты элемента и для запуска и для конечных точек анимации.

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает стартовую информацию макета для дополнительного представления, вставляемого в представление набора.

    Объявление

    Swift

    func initialLayoutAttributesForAppearingSupplementaryElementOfKind(_ elementKind: String, atIndexPath elementIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath

    Параметры

    elementKind

    Строка, идентифицирующая тип дополнительного представления.

    elementIndexPath

    Индексный путь вставляемого элемента.

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

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

    Обсуждение

    Этот метод вызывают после prepareForCollectionViewUpdates: метод и перед finalizeCollectionViewUpdates метод для любых дополнительных представлений, собирающихся быть вставленными. Ваша реализация должна возвратить информацию макета, описывающую начальную позицию и состояние представления. Представление набора использует эту информацию в качестве начальной точки для любых анимаций. (Конечная точка анимации является новым расположением представления в представлении набора.), Если Вы возвращаетесь nil, объект расположения использует заключительные атрибуты элемента и для запуска и для конечных точек анимации.

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает стартовую информацию макета для представления художественного оформления, вставляемого в представление набора.

    Объявление

    Swift

    func initialLayoutAttributesForAppearingDecorationElementOfKind(_ elementKind: String, atIndexPath elementIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingDecorationElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath

    Параметры

    elementKind

    Строка, идентифицирующая тип представления художественного оформления.

    elementIndexPath

    Индексный путь вставляемого элемента.

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

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

    Обсуждение

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

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает массив индексных путей, представляющих дополнительные представления для удаления.

    Объявление

    Swift

    func indexPathsToDeleteForSupplementaryViewOfKind(_ kind: String) -> [AnyObject]

    Objective C

    - (NSArray *)indexPathsToDeleteForSupplementaryViewOfKind:(NSString *)kind

    Параметры

    kind

    Определенный тип дополнительного представления.

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

    Массив NSIndexPath объекты, указывающие дополнительные представления, которые Вы хотите удалить или пустой массив, если Вы не хотите удалять какие-либо представления данного вида.

    Обсуждение

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

    Представление набора вызывает этот метод между своими вызовами к prepareForCollectionViewUpdates: и finalizeCollectionViewUpdates.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает массив индексных путей, представляющих представления художественного оформления для удаления.

    Объявление

    Swift

    func indexPathsToDeleteForDecorationViewOfKind(_ kind: String) -> [AnyObject]

    Objective C

    - (NSArray *)indexPathsToDeleteForDecorationViewOfKind:(NSString *)kind

    Параметры

    kind

    Определенный тип представления художественного оформления.

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

    Массив NSIndexPath объекты, указывающие представления художественного оформления, которые Вы хотите удалить или пустой массив, если Вы не хотите удалять какие-либо представления данного вида.

    Обсуждение

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

    Представление набора вызывает этот метод между своими вызовами к prepareForCollectionViewUpdates: и finalizeCollectionViewUpdates.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

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

    Объявление

    Swift

    func finalLayoutAttributesForDisappearingItemAtIndexPath(_ itemIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath

    Параметры

    itemIndexPath

    Индексный путь удаляемого элемента.

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

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

    Обсуждение

    Этот метод вызывают после prepareForCollectionViewUpdates: метод и перед finalizeCollectionViewUpdates метод для любых элементов, собирающихся быть удаленными. Ваша реализация должна возвратить информацию макета, описывающую заключительную позицию и состояние элемента. Представление набора использует эту информацию в качестве конечной точки для любых анимаций. (Начальная точка анимации является текущим расположением элемента.), Если Вы возвращаетесь nil, объект расположения использует те же атрибуты и для запуска и для конечных точек анимации.

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает заключительную информацию макета для дополнительного представления, собирающегося быть удаленным из представления набора.

    Объявление

    Swift

    func finalLayoutAttributesForDisappearingSupplementaryElementOfKind(_ elementKind: String, atIndexPath elementIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath

    Параметры

    elementKind

    Строка, идентифицирующая тип дополнительного представления.

    elementIndexPath

    Индексный путь удаляемого представления.

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

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

    Обсуждение

    Этот метод вызывают после prepareForCollectionViewUpdates: метод и перед finalizeCollectionViewUpdates метод для любых дополнительных представлений, собирающихся быть удаленными. Ваша реализация должна возвратить информацию макета, описывающую заключительную позицию и состояние представления. Представление набора использует эту информацию в качестве конечной точки для любых анимаций. (Начальная точка анимации является текущим расположением представления.), Если Вы возвращаетесь nil, объект расположения использует те же атрибуты и для запуска и для конечных точек анимации.

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает заключительную информацию макета для представления художественного оформления, собирающегося быть удаленным из представления набора.

    Объявление

    Swift

    func finalLayoutAttributesForDisappearingDecorationElementOfKind(_ elementKind: String, atIndexPath elementIndexPath: NSIndexPath) -> UICollectionViewLayoutAttributes?

    Objective C

    - (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingDecorationElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath

    Параметры

    elementKind

    Строка, идентифицирующая тип представления художественного оформления.

    elementIndexPath

    Индексный путь удаляемого представления.

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

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

    Обсуждение

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

    Реализация по умолчанию этого метода возвраты nil.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Лишает законной силы текущий макет и инициировал обновление расположения.

    Объявление

    Swift

    func invalidateLayout()

    Objective C

    - (void)invalidateLayout

    Обсуждение

    Можно вызвать этот метод в любое время для обновления информации макета. Этот метод лишает законной силы расположение самого представления набора и возвращается сразу же. Таким образом можно вызвать этот метод многократно от того же блока кода, не инициировав многократные обновления расположения. Фактическое обновление расположения происходит во время следующего цикла обновления расположения представления.

    При переопределении этого метода необходимо вызвать super в некоторый момент в Вашей реализации.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Лишает законной силы текущий макет с помощью информации в предоставленном объекте контекста.

    Объявление

    Swift

    func invalidateLayoutWithContext(_ context: UICollectionViewLayoutInvalidationContext)

    Objective C

    - (void)invalidateLayoutWithContext:(UICollectionViewLayoutInvalidationContext *)context

    Параметры

    context

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

    Обсуждение

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

    При переопределении этого метода необходимо вызвать super в некоторый момент в Вашей реализации.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Возвращает класс для использования при создании контекста аннулирования для расположения.

    Объявление

    Swift

    class func invalidationContextClass() -> AnyClass

    Objective C

    + (Class)invalidationContextClass

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Если новые границы требуют обновления расположения, спрашивает объект расположения.

    Объявление

    Swift

    func shouldInvalidateLayoutForBoundsChange(_ newBounds: CGRect) -> Bool

    Objective C

    - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds

    Параметры

    newBounds

    Новые границы представления набора.

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

    YEStrue если представление набора требует обновления расположения или NOfalse если не должно изменяться расположение.

    Обсуждение

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

    Если границы набора просматривают изменение и этот метод возвраты YEStrue, представление набора лишает законной силы расположение путем вызова invalidateLayoutWithContext: метод.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

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

    Объявление

    Swift

    func invalidationContextForBoundsChange(_ newBounds: CGRect) -> UICollectionViewLayoutInvalidationContext

    Objective C

    - (UICollectionViewLayoutInvalidationContext *)invalidationContextForBoundsChange:(CGRect)newBounds

    Параметры

    newBounds

    Новые границы для представления набора.

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

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

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

    См. также

    + invalidationContextClass

  • Если изменения в ячейке самокалибровки требуют обновления расположения, спрашивает объект расположения.

    Объявление

    Swift

    func shouldInvalidateLayoutForPreferredLayoutAttributes(_ preferredAttributes: UICollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: UICollectionViewLayoutAttributes) -> Bool

    Objective C

    - (BOOL)shouldInvalidateLayoutForPreferredLayoutAttributes:(UICollectionViewLayoutAttributes *)preferredAttributes withOriginalAttributes:(UICollectionViewLayoutAttributes *)originalAttributes

    Параметры

    preferredAttributes

    Атрибуты макета, возвращенные ячейкой preferredLayoutAttributesFittingAttributes: метод.

    originalAttributes

    Атрибуты, которым расположение возражает первоначально предложенный для ячейки.

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

    YEStrue если расположение должно быть лишено законной силы или NOfalse если это не должно.

    Обсуждение

    Когда представление набора включает ячейки самокалибровки, ячейкам дают возможность изменить их собственные атрибуты макета, прежде чем будут применены те атрибуты. Ячейка самокалибровки могла бы сделать это для указания различного размера ячейки, чем тот, который обеспечивает объект расположения. Когда ячейка обеспечивает различный набор атрибутов, представление набора вызывает этот метод, чтобы определить, требует ли изменение ячейки большего обновления расположения.

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

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

    Объявление

    Swift

    func invalidationContextForPreferredLayoutAttributes(_ preferredAttributes: UICollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutInvalidationContext

    Objective C

    - (UICollectionViewLayoutInvalidationContext *)invalidationContextForPreferredLayoutAttributes:(UICollectionViewLayoutAttributes *)preferredAttributes withOriginalAttributes:(UICollectionViewLayoutAttributes *)originalAttributes

    Параметры

    preferredAttributes

    Атрибуты макета, возвращенные ячейкой preferredLayoutAttributesFittingAttributes: метод.

    originalAttributes

    Атрибуты, которым расположение возражает первоначально предложенный для ячейки.

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

    Контекст аннулирования, включающий информацию о том, какие изменения должны быть внесены в расположение.

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Подготавливает объект расположения к анимированным изменениям в границах представления или вставке или удалении элементов.

    Объявление

    Swift

    func prepareForAnimatedBoundsChange(_ oldBounds: CGRect)

    Objective C

    - (void)prepareForAnimatedBoundsChange:(CGRect)oldBounds

    Параметры

    oldBounds

    Текущие границы представления набора.

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Очищает после любых анимированных изменений в границах представления или после вставки или удаления элементов.

    Объявление

    Swift

    func finalizeAnimatedBoundsChange()

    Objective C

    - (void)finalizeAnimatedBoundsChange

    Обсуждение

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

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Говорит объекту расположения подготовить быть установленным как расположение для представления набора.

    Объявление

    Swift

    func prepareForTransitionFromLayout(_ oldLayout: UICollectionViewLayout)

    Objective C

    - (void)prepareForTransitionFromLayout:(UICollectionViewLayout *)oldLayout

    Параметры

    oldLayout

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

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Говорит, что расположение возражает, что собирается быть удаленным как расположение для представления набора.

    Объявление

    Swift

    func prepareForTransitionToLayout(_ newLayout: UICollectionViewLayout!)

    Objective C

    - (void)prepareForTransitionToLayout:(UICollectionViewLayout *)newLayout

    Параметры

    newLayout

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

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Говорит объекту расположения выполнить любые последние шаги, прежде чем произойдут анимации перехода.

    Объявление

    Swift

    func finalizeLayoutTransition()

    Objective C

    - (void)finalizeLayoutTransition

    Обсуждение

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

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Регистрирует класс для использования в создании представлений художественного оформления для представления набора.

    Объявление

    Swift

    func registerClass(_ viewClass: AnyClass?, forDecorationViewOfKind decorationViewKind: String)

    Objective C

    - (void)registerClass:(Class)viewClass forDecorationViewOfKind:(NSString *)decorationViewKind

    Параметры

    viewClass

    Класс для использования для дополнительного представления.

    decorationViewKind

    Вид элемента представления художественного оформления. Можно использовать эту строку для различения представления художественного оформления с различными целями в расположении. Этот параметр не должен быть nil и не должна быть пустая строка.

    Обсуждение

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

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

    При предыдущей регистрации класса или файла пера с той же доброй строкой, класс, Вы указываете в viewClass параметр заменяет старую запись. Можно указать nil для viewClass если Вы хотите не зарегистрировать представление художественного оформления.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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

  • Регистрирует файл пера для использования в создании представлений художественного оформления для представления набора.

    Объявление

    Swift

    func registerNib(_ nib: UINib?, forDecorationViewOfKind decorationViewKind: String)

    Objective C

    - (void)registerNib:(UINib *)nib forDecorationViewOfKind:(NSString *)decorationViewKind

    Параметры

    nib

    Объект пера, содержащий определение ячейки. Файл пера должен содержать только один объект верхнего уровня и что объект должен иметь тип UICollectionReusableView.

    decorationViewKind

    Вид элемента представления художественного оформления. Можно использовать эту строку для различения представления художественного оформления с различными целями в расположении. Этот параметр не должен быть nil и не должна быть пустая строка.

    Обсуждение

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

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

    При предыдущей регистрации класса или файла пера с той же доброй строкой, класс, Вы указываете в viewClass параметр заменяет старую запись. Можно указать nil для viewClass если Вы хотите не зарегистрировать представление художественного оформления.

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

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

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