Позиция заголовка UICollectionView в режиме горизонтального прокрутки с раскладкой

У меня есть iOS UICollectionView с раскладкой Flow с горизонтальным направлением прокрутки. В этой ситуации типичная позиция заголовка находится в левой части ячеек.

Я хочу сделать заголовок в верхней части секционных ячеек

Вы знаете, как я могу это сделать?

18
nl ja de

2 ответы

Я думаю, вы можете получить то, что вам нужно, используя стандартное поведение для заголовка.

Установите его (возможно, в viewDidLoad):

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.headerReferenceSize = CGSizeMake(self.collectionView.bounds.size.width, 30);
// other setup
[self.collectionView setCollectionViewLayout:flowLayout];

Затем ответьте на заголовок:

#define MY_HEADER_LABEL_TAG 128

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {

    UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:
                                            UICollectionElementKindSectionHeader withReuseIdentifier:@"SectionHeader" forIndexPath:indexPath];
    UILabel *label = (UILabel *)[headerView viewWithTag:MY_HEADER_LABEL_TAG];
    if (!label) {
        label = [[UILabel alloc] initWithFrame:CGRectInset(headerView.bounds, 5, 5)];
        label.tag = MY_HEADER_LABEL_TAG;
        label.font = [UIFont boldSystemFontOfSize:12];
        label.textColor = [UIColor darkGrayColor];
        [headerView addSubview:label];
    }

    label.text = [NSString stringWithFormat:@"Section %d", indexPath.section];
    return headerView;
}
6
добавлено
Это решение невозможно получить, чего вы хотите.
добавлено автор xi.lin, источник
Это не имеет смысла. Как это решить этот вопрос?
добавлено автор Morten Holmgaard, источник
@greg_pl Получили ли вы это? Если да, то как вы это сделали?
добавлено автор Johnny, источник
Это то, что мне нужно, спасибо!
добавлено автор greg_pl, источник

Я решил проблему, используя DateFlowLayout .

Посмотрите, как я настроил его в этом другом ответе .

5
добавлено
-1 без комментариев?
добавлено автор Morten Holmgaard, источник
Не работает для меня. Любые изменения должны произойти в DateFlowLayout?
добавлено автор Payal Maniyar, источник
upvote с комментарием - спасибо за ссылки, помог мне с аналогичной проблемой :)
добавлено автор bejonbee, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.