Настройка UICollectionView в iOS
Я искал способы настроить UICollectionView
для приложения iOS. Google показывает только несколько блогов с сообщениями о том, что это такое, а не о том, как это работает. Затем, конечно, есть документация Apple, которая полезна, но не предоставляет столько информации, сколько я хотел бы иметь возможность настроить UICollectionView
,
Как можно настроить UICollectionView
?
2 ответа
Класс /questions/tagged/uicollectionview практически идентичен классу uitableview. У них много одинаковых методов и функций. И если методы / функции различны, в большинстве случаев это просто вопрос замены "строки" на "ячейку" и наоборот. Однако есть несколько методов, которые не существуют в UICollectionView, которые существуют в UITableView. Сначала я объясню, как настроить UICollectionView:
- Начните с добавления UICollectionView в текущий ViewController или создания нового UICollectionViewController. Шаги не сильно отличаются для вида и контроллера.
Если вы используете View, а не ViewController, убедитесь, что Delegate и DataSource для CollectionView - это тот контроллер представления, на котором он включен. Также обязательно добавьте Delegate и DataSource в ваш заголовочный файл:
<UICollectionViewDataSource, UICollectionViewDelegate>
Затем убедитесь, что вы включили эти три метода в класс вашего контроллера представления:
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
Это единственные обязательные методы. Первый сообщает представлению коллекции количество секций, которые должны иметь. Это должно вернуть целочисленное значение. Второй метод получает количество ячеек в каждом разделе. Опять же, это должно вернуть целочисленное значение. Последний метод заполняет каждую ячейку, используя данные (обычно из NSArray). Этот последний метод должен возвращать CollectionViewCell. Если вы установите точки останова для этого метода, вы заметите, что он вызывается один раз для каждой ячейки, определенной в
numberOfItemsInSection
метод.
UICollectionViews предоставляют расширенные методы анимации и позволяют отменять выделение и выделение ячеек (аналогично приложениям, например Pages, в режиме "Редактирование"). Однако, насколько мне известно, UICollectionViews не предоставляют такие функции, как "пролистывание для удаления" или тип индикатора раскрытия.
UICollectionViews также позволяют создавать пользовательские ячейки с использованием файлов xib (AKA nib), что позволяет использовать некоторые очень продвинутые и уникальные интерфейсы без большого количества сложного кода.
К сожалению, UICollectionView поддерживается только в iOS 6 и выше. Есть несколько доступных проектов, таких как PSTCollectionView, который добавляет поддержку CollectionViews в iOS 4.3+, но я не выяснил, как их использовать. В моем случае, когда загружается представление, я просто проверяю, доступен ли класс UICollectionView, а если нет, тогда я загружаю таблицу.
Вот ссылка на официальную документацию Apple по коллекциям. Вы также можете проверить этот учебник.
Я создал пошаговое руководство по настройке UICollectionViews с пользовательскими макетами. Надеюсь, это поможет некоторым людям ознакомиться с API.