Представления набора
Представление набора выводит на экран упорядоченный набор элементов данных с помощью стандартных или пользовательских макетов. Подобный табличному представлению, представление набора получает данные от Ваших пользовательских объектов источника данных и выводит на экран их с помощью комбинации ячейки, расположения и дополнительных представлений. Представление набора может экспонаты в сетке или в пользовательском макете, который Вы разрабатываете. Независимо от стиля макета Вы выбираете, представление набора подходит лучше всего для отображения неиерархических, упорядоченных элементов данных.
Цель. Представления набора позволяют пользователям:
Просмотрите каталог непостоянно размерных элементов, дополнительно сортированных в многократные разделы
Добавьте к, перестройте и отредактируйте набор элементов
Выберите из часто изменяющегося дисплея элементов
Реализация.
Представления набора реализованы в
UICollectionView
класс и обсудил в Ссылке класса UICollectionView.Ячейки представления Collection реализованы в
UICollectionViewCell
класс и обсудил в Ссылке класса UICollectionViewCell.Набор допускающие повторное использование представления реализован в
UICollectionReusableView
класс и обсудил в Ссылке класса UICollectionReusableView.
Конфигурация. Сконфигурируйте представления набора в Интерфейсном Разработчике в разделе Collection View Инспектора Атрибутов. Несколько конфигураций не могут быть сделаны через Инспектора Атрибутов, таким образом, необходимо сделать их программно. Также, если Вы предпочитаете, можно установить другие конфигурации программно.
Содержание представлений набора
Ячейки представляют основное содержание Вашего представления набора. Задание ячейки должно представить содержание для единственного элемента от Вашего объекта источника данных. Каждая ячейка должна быть экземпляром UICollectionViewCell
класс, который можно разделить на подклассы по мере необходимости для представления содержания. Объекты ячейки предоставляют свойственную поддержку для управления их собственным выбором и состоянием выделения, несмотря на то, что некоторый пользовательский код должен быть записан для фактического применения выделения к ячейке. A UICollectionViewCell
объект является определенным типом допускающего повторное использование представления, что Вы используете для своих основных элементов данных.
Для управления визуальным представлением данных представление набора работает со многими связанными классами, такой как UICollectionViewController
, UICollectionViewDataSource
, UICollectionViewDelegate
, UICollectionReusableView
, UICollectionViewCell
, UICollectionViewLayout
, и UICollectionViewLayoutAttributes
.
Представления набора осуществляют строгое разделение между представляемыми данными и визуальными элементами, используемыми для представления. Ваше приложение несет единоличную ответственность за управление данными через Ваши пользовательские объекты источника данных. (Чтобы изучить, как создать эти объекты, посмотрите Разработку Ваших Объектов данных.) Ваше приложение также обеспечивает, объекты представления раньше представляли те данные. Представление набора получает Ваши представления и — с помощью объекта расположения, указывающего, что размещение и другие визуальные атрибуты — выполняют всю работу отображения их на экране.
Для отображения содержания на экране эффективным способом представление набора использует следующие допускающие повторное использование объекты представления:
Ячейка. Представляет один элемент данных.
Дополнительное представление. Представляет информацию, связанную с элементами данных, такими как заголовок раздела или нижний колонтитул.
Представление Decoration. Представляет чисто декоративное содержание, это не часть Ваших данных, таких как фоновое изображение.
Поскольку представление набора работает с этими и другими объектами решить, что визуальное представление Ваших данных, конфигурируя представление набора в Интерфейсном Разработчике означает, что необходимо сконфигурировать некоторые объекты отдельно.
Элементы. Число различных типов данных, для которых Вы определяете отличные объекты ячейки. Если Ваше приложение работает только с одним типом элемента данных — независимо от общего количества элементов данных Вы выводите на экран — устанавливает это значение в
1
.Аксессуары. Существование заголовка или представление нижнего колонтитула для каждого раздела (это свойство не доступно для пользовательских макетов). Выберите Section Header или Section Footer как надлежащие.
В Наборе Допускающий повторное использование инспектор Атрибутов Представления — который управляет дополнительными представлениями, представлениями художественного оформления и ячейками — можно установить Идентификатор (идентификатор) поле. Введите идентификатор, который Вы используете в своем коде для идентификации допускающей повторное использование ячейки, художественного оформления или дополнительного объекта представления.
Поведение представлений набора
Существует несколько способов поведения, которые можно поддерживать в представлении набора. Например, Вы могли бы хотеть позволить пользователям:
Выберите один или несколько элементов
Вставьте, удалите и переупорядочьте элементы или разделы
Отредактируйте элемент
По умолчанию представление набора обнаруживает, когда пользователь касается определенной ячейки, и оно обновляет выбранные или выделенные свойства ячейки как надлежащие. Можно записать код, конфигурирующий представление набора для поддержки выбора многократного элемента, или это рисует выбранные или выделенные состояния сами. Чтобы изучить, как поддерживать множественный выбор или пользовательские состояния выбора, посмотрите Управление Визуальным состоянием для Выборов и Выделений.
Для поддержки вставки, удаления или переупорядочения ячеек в представлении набора, Вы вносите изменения в свой источник данных и затем говорите представлению набора восстанавливать изображение содержания. По умолчанию представление набора анимирует вставку, удаление или перемещение единственного элемента; если Вы хотите анимировать эти изменения для многократных элементов сразу, Вы используете блоки кода для пакетной обработки обновления. Чтобы учиться как анимационные многократные изменения в представлении набора, посмотрите Вставку, Удаление и Перемещение Разделов и Элементов. Чтобы позволить пользователям переместить элемент или элементы путем перетаскивания, также необходимо включить пользовательское устройство распознавания жеста. (Чтобы изучить, как сделать это, посмотрите Ячейки Управления и Представления.)
При поддержке редактирования для элемента представление набора автоматически выводит на экран меню Edit, когда это обнаруживает жест длинного нажатия на определенной ячейке. Чтобы изучить, как поддерживать редактирование в представлении набора, посмотрите Показ Меню Редактирования для Ячейки.
При конфигурировании ячеек и дополнительных представлений в раскадровке, Вы делаете так путем перетаскивания элемента на представление набора и конфигурирования его там. Это создает отношение между представлением набора и соответствующей ячейкой или представлением. Для ячеек перетащите ячейку представления набора от библиотеки объектов и отбросьте ее на свое представление набора. Установите пользовательский класс и набор допускающий повторное использование идентификатор представления Вашей ячейки к надлежащим значениям.
Выбирает ли пользователь или отменяет выбор ячейки, выбранное состояние ячейки всегда является последней вещью измениться. Касания в ячейке всегда приводят к изменениям в выделенном состоянии ячейки сначала. Только после того, как концы последовательности касания и любые выделения, примененные во время той последовательности, удалены, делает выбранное состояние изменения ячеек. При разработке ячеек необходимо удостовериться, что визуальное появление выделений и выбранного состояния не конфликтует непреднамеренными способами.
Когда пользователь выполняет жест длинного касания на ячейке, представление набора пытается вывести на экран меню Edit для той ячейки. Меню Edit может использоваться, чтобы сократить, скопировать, и вставить ячейки в представлении набора.
Если Вы работаете с UICollectionViewFlowLayout
класс, можно использовать инспектора Атрибутов для установки “Направления Прокрутки” (scrollDirection
) поле к Horizontal
или Vertical
. Обратите внимание на то, что это свойство не доступно для пользовательских макетов.
Появление представлений набора
Расположение
Представление набора полагается на объект расположения определить расположение его ячеек, дополнительные представления и представления художественного оформления.
Поле Layout определяет расположение ячеек. Значение по умолчанию является Потоком, относящимся к расположению, определенному UICollectionViewFlowLayout
класс. Если Вы обеспечиваете класс пользовательского макета, выбираете Custom вместо этого.
Для узнавания больше о создании класса пользовательского макета см. Руководство по программированию Представления Набора для iOS.
Фон
Для использования пользовательского фона для представления набора можно указать представление, которое это расположило подо всем другим содержанием и измерило автоматически для заполнения всех границ представления набора. Можно установить это значение с помощью backgroundView
свойство. Поскольку это фоновое представление не прокручивает с содержанием представления набора, это не надлежащий способ вывести на экран декоративный фон, такой как появление деревянных полок.
Фон ячейки
Для использования пользовательского фона для единственного набора просматривают ячейку, можно указать представление, это расположено позади представления содержания ячейки, и это заполняет границы ячейки. Можно установить это значение с помощью backgroundView
свойство.
Можно также указать пользовательский выбранный фон путем обеспечения представления, это выведено на экран выше фонового представления ячейки — и позади довольного представление — когда пользователь выбирает ячейку. Установите это значение с помощью selectedBackgroundView
свойство.
Интервал
В Инспекторе Размера Перетекающего макета Представления Набора можно установить значения размера (в точках) для объекта расположения использовать при разметке ячеек и дополнительных представлений.
Для интервала между ячейками можно установить следующая минута, Расположив значения с интервалами:
Для Ячеек. Минимальное пространство для поддержания между ячейками на одной строке.
Для Строк. Минимальное пространство для поддержания между строками ячеек.
Дополнение ячейки
Для добавления дополнения вокруг ячеек так, чтобы пространство появилось выше, ниже, или по обе стороны от ячеек в разделе, используют поля «Section Insets» в Инспекторе Размера Перетекающего макета Представления Набора. Указание ненулевых значений вставки сокращает сумму пространства, доступного для разметки ячеек, который позволяет Вам ограничить число ячеек, которые могут появиться на одной строке или числе строк, которые могут появиться в одном разделе. Вставки, которые можно указать:
Вершина. Пространство для добавления между нижней частью представления заголовка и вершиной первой строки ячеек.
Нижняя часть. Пространство для добавления между нижней частью длится строку ячеек и вершину нижнего колонтитула
Левый. Пространство для добавления между левым краем ячеек и левым краем представления набора.
Право. Пространство для добавления между правым краем ячеек и правым краем представления набора.
Используя автоматическое расположение с представлениями набора
Можно создать Автоматические Ограничения макета между представлением набора и другими элементами пользовательского интерфейса. Можно создать любой тип ограничения для представления набора помимо ограничения базовой линии.
Для получения общей информации об использовании Автоматического Расположения с представлениями iOS, посмотрите Используя Автоматическое Расположение с Представлениями.
Создание доступных представлений набора
Элементы данных в представлении набора доступны по умолчанию, когда они представлены стандартными объектами UIKit, такой как UILabel
и UITextField
.
Когда представление набора изменяет свое экранное расположение, оно отправляет UIAccessibilityLayoutChangedNotification
уведомление.
Для получения общей информации о создании доступных представлений iOS, посмотрите Доступные Представления Создания.
Интернационализация представлений набора
Для получения дополнительной информации посмотрите Руководство по Интернационализации и Локализации.
Элементы, подобные представлению набора
Следующие элементы обеспечивают схожую функциональность для представления набора:
Табличное представление. Представление прокрутки, что элементы данных дисплеев в списке отдельного столбца. Для получения дополнительной информации посмотрите Табличные представления.
Прокрутите Представление. Представление прокрутки, что содержание дисплеев без поддержки любого определенного расположения или схемы упорядочивания. Для получения дополнительной информации посмотрите Представления Прокрутки.