Ответ 1
Оба глобальных заголовка и нижнего колонтитула являются ячейками (UICollectionViewCell) первого и последнего раздела
Я использую UICollectionView и нуждаюсь в глобальном верхнем и нижнем колонтитулах вместе с заголовками разделов. Оба глобальных заголовка и нижнего колонтитула должны прокручиваться вместе с остальной частью содержимого. В основном они должны работать точно так же, как свойства UITableView tableHeaderView и tableFooterView.
Из того, что я понимаю, дополнительные взгляды находятся выше или ниже определенного раздела, и элементы оформления не функционируют. Мой глобальный верхний и нижний колонтитулы должны иметь интерактивные элементы.
Я действительно вытаскиваю свои волосы, проработав пару часов. Я нашел пару неприятных способов, таких как хакинг с contentInsets и добавление subview в collectionview. То, что я действительно ищу, - это чистый способ сделать это.
Я с нетерпением жду любого совета!
Оба глобальных заголовка и нижнего колонтитула являются ячейками (UICollectionViewCell) первого и последнего раздела
Вам нужно будет создать собственный макет представления коллекций и источник данных. Источник данных будет возвращать глобальные заголовки и глобальные нижние колонтитулы, а также заголовки и нижние колонтитулы разделов, и ваш собственный макет представления коллекции должен будет разместить их соответствующим образом.
ЭТО НЕ ОЧЕНЬ ПРОСТОЕ ПРОЦЕСС.
В WWDC поговорите о расширенных пользовательских интерфейсах с представлениями коллекции, они описывают свой подход с примером кода о том, как они создали глобальный заголовок. Вы можете использовать свой примерный код, а затем добавить к нему глобальный раздел нижнего колонтитула.
От Apple:
Исправить это в методе делегата cellForItemAtIndexPath
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0)
{
// first section
}
else if (indexPath.section == [dataSourceSectionsArray.count]-1)
{
// last section
}
else
{
// normal section
}
}
И вы должны, конечно, возвратить [dataSourceSectionsArray.count] +2 (один заголовок, один нижний колонтитул) в методе numberOfRowsInSection и иметь в виду всегда ссылаться на [dataSourceSectionsArray objectAtIndex: indexPath.row-1] при доступе к вашим данным в нормальной ячейке, так как нет объекта, соответствующего заголовку в массиве.