Положение заголовка UICollectionView в режиме горизонтального направления прокрутки с компоновкой потока
У меня есть ios UICollectionView с компоновкой потока с горизонтальным направлением прокрутки. В этом случае типичная позиция заголовка находится на левой стороне ячеек.
Я хочу сделать заголовок в верхней части ячеек секции
У вас есть какие-нибудь идеи, как я могу это сделать?
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; }
Я решил задачу, используя DateFlowLayout .
Смотрите, как я настроил его в этот другой ответ.