UICollection在具有流布局的水平滚动方向模式下查看标头位置



我有ios UICollectionView,带有水平滚动方向的Flow布局。在这种情况下,典型的标题位置位于单元格的左侧。

我想在部分单元格的顶部制作标题

你知道我该怎么做吗?

我使用DateFlowLayout解决了这个问题。

看看我如何在另一个答案中配置它。

我认为您可以使用标头的标准行为来获得所需的内容。

设置它(可能在视图中DidLoad):

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;
}

相关内容

  • 没有找到相关文章

最新更新