Compositional Layout — это гибкий механизм создания раскладок коллекций (UICollectionView), представленный в iOS 13. Он позволяет описывать структуру секций и элементов декларативно, упрощая создание сложных и адаптивных UI.
Основные преимущества:
UICollectionViewFlowLayout
.Ключевые компоненты:
NSCollectionLayoutItem
: Описывает элемент в коллекции. Определяет его размер относительно содержащей его группы.NSCollectionLayoutGroup
: Описывает группу элементов. Может быть вертикальной, горизонтальной или кастомной. Определяет размер группы относительно содержащей ее секции.NSCollectionLayoutSection
: Описывает секцию в коллекции. Содержит группы и управляет их расположением. Определяет поведение секции (например, прокрутка).NSCollectionLayoutBoundarySupplementaryItem
: Используется для добавления дополнительных элементов к секции (хедеры, футеры).UICollectionViewCompositionalLayout
: Класс макета, который собирает секции в финальную раскладку.Пример создания простой секции с горизонтальной прокруткой:
swift
Compositional Layout — это гибкий механизм создания раскладок коллекций (UICollectionView), представленный в iOS 13. Он позволяет описывать структуру секций и элементов декларативно, упрощая создание сложных и адаптивных UI.
Основные преимущества:
UICollectionViewFlowLayout
.Ключевые компоненты:
NSCollectionLayoutItem
: Описывает элемент в коллекции. Определяет его размер относительно содержащей его группы.NSCollectionLayoutGroup
: Описывает группу элементов. Может быть вертикальной, горизонтальной или кастомной. Определяет размер группы относительно содержащей ее секции.NSCollectionLayoutSection
: Описывает секцию в коллекции. Содержит группы и управляет их расположением. Определяет поведение секции (например, прокрутка).NSCollectionLayoutBoundarySupplementaryItem
: Используется для добавления дополнительных элементов к секции (хедеры, футеры).UICollectionViewCompositionalLayout
: Класс макета, который собирает секции в финальную раскладку.Пример создания простой секции с горизонтальной прокруткой:
swift
Register or sign in to get access to full answers for all questions from the question bank.