UICollectionView 添加段头

UICollectionView 添加段头: 
1.用storyboard添加段头: 
2.代码添加。

注意:两种方法都需要设置如下,记住设置代理哟:

_collectionView.dataSource = self;

_collectionView.delegate = self;

UICollectionViewFlowLayout * layout = [[UICollectionViewFlowLayout alloc]init];

_collectionView.collectionViewLayout = layout;

layout.itemSize = CGSizeMake(318, 286);

layout.sectionInset = UIEdgeInsetsMake(5, 0, 5, 0);

layout.headerReferenceSize = CGSizeMake(320, 200);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1,使用storyboard添加段头,选中viewController中的collectionView,勾选section header

UICollectionView 添加段头_第1张图片

然后在xcode中新建一个类与这个header关联。 
UICollectionView 添加段头_第2张图片

2.代码创建,就是新建一个类,必须继承自 UICollectionReusableView.

最后,无论是用storyboard还是代码,都需要实现UIcollectionViewDataSource中的方法:viewForSupplementaryElementOfKind

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

    UICollectionReusableView *reusableView = nil;

    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

        HLTopicItemHeader * header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:kTopicHeaderIdentifier forIndexPath:indexPath];

        //有缓存了
        [header.imgV sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kDataServer2,_topic_img_url]] placeholderImage:[UIImage imageNamed:@"AppIcon60x60@3x"]];

        header.title.text = _topic_title;
        reusableView = header;
    }

    return reusableView;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

OK。搞定~!

你可能感兴趣的:(IOS,开发,UI)