UICollectionView创建头部headerview

使用自带的头部视图

#import "HomeViewController.h"  
#import "ConstomCell.h"  
  
  
static NSString *headerViewIdentifier = @"hederview";  
  
@interface HomeViewController ()  
  
@property (nonatomic,strong) UIImageView *headerImage;  
  
@end  
  
@implementation HomeViewController  
  
- (void)viewDidLoad {  
    [super viewDidLoad];  
    //1.添加collectionview  
    [self addCollectionView];  
    
}  
  
-(void)addCollectionView  
{  
    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc]init];  
    layout.minimumLineSpacing=20; //设置每一行的间距  
    layout.itemSize=CGSizeMake(100, 100);  //设置每个单元格的大小  
    layout.sectionInset=UIEdgeInsetsMake(0, 0, 50, 0);  
    layout.headerReferenceSize=CGSizeMake(self.view.frame.size.width, 250); //设置collectionView头视图的大小  
      
    UICollectionView *collectionView=[[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];  
    collectionView.frame=self.view.bounds;  
    //注册cell单元格  
   [collectionView registerNib:[UINib nibWithNibName:@"ConstomCell" bundle:nil] forCellWithReuseIdentifier:@"cell"];  
    //注册头视图  
    [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerViewIdentifier];  
      
    collectionView.backgroundColor=[UIColor whiteColor];  
    collectionView.delegate=self;  
    collectionView.dataSource=self;  
    [self.view addSubview:collectionView];  
}  
  
#pragma mark  返回多少行  
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section  
{  
     
    return 13;  
}  
#pragma markk 返回的单元格  
-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath  
{  
    ConstomCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];  
      
    return cell;  
}  
  
//  返回头视图  
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath  
{  
    //如果是头视图  
    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {  
         UICollectionReusableView *header=[collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:headerViewIdentifier forIndexPath:indexPath];  
        //添加头视图的内容  
        [self addContent];  
        //头视图添加view  
        [header addSubview:self.headerImage];  
        return header;  
    }  
    //如果底部视图  
//    if([kind isEqualToString:UICollectionElementKindSectionFooter]){  
//          
//    }  
    return nil;  
}  
/* 
 *  补充头部内容 
 */  
-(void)addContent  
{  
    UIImageView *headerImage=[[UIImageView alloc]init];  
    headerImage.contentMode=UIViewContentModeScaleAspectFill;  
    headerImage.clipsToBounds=YES;  
    headerImage.frame=CGRectMake(0, 0, self.view.frame.size.width, 250);  
    headerImage.image=[UIImage imageNamed:@"mei"];  
    self.headerImage=headerImage;  
}  
  
  
@end  
自定义headerview

//头顶部
    [self.collectionView registerClass:[OnlineChantHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:HeaderViewId];
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    UICollectionReusableView *reusableView = nil;
    if (kind == UICollectionElementKindSectionHeader) {//藏书 定制头部视图的内容
     }
    OnlineChantHeaderView *headerView = (OnlineChantHeaderView *)[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:HeaderViewId forIndexPath:indexPath];
    reusableView = headerView;
    Model *tempModel = self.stackRoomArray[indexPath.section];
        headerView.name = tempModel.Name;
    return reusableView;
}



你可能感兴趣的:(iOS)