UICollectionView顯示HeaderView FooterView 不如UITableView那麼容易,經常使用會有兩種作法:ui
如圖所示,設計
好多都在找UICollectionView是否有這麼個屬性,好比上圖說到Accessories
什麼的,其實否則。你們首先要搞明白意見事情,header和footer是追加視圖,屬於layout
中的因此要代碼設置section要在UICollectionViewFlowLayout:code
- (UICollectionViewFlowLayout *) flowLayout{ UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; flowLayout.。。。。。。//各屬性設置 flowLayout.headerReferenceSize = CGSizeMake(320.0f, 50.0f); //設置headerView大小 flowLayout.footerReferenceSize = CGSizeMake(320.0f, 50.0f); // 設置footerView大小 return flowLayout; }
- (void)viewDidLoad { [super viewDidLoad]; UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; flowLayout.headerReferenceSize = CGSizeMake(320.0f, 50.0f); //設置headerView大小 [self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"]; // 必定要設置 [self.collectionView setCollectionViewLayout:layout]; //(這部分說明能夠參見xib設置sectionview) } - (UICollectionReusableView *) collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath]; UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, WINSIZE.width, WINSIZE.width*7/15)]; [imageView sd_setImageWithURL:[NSURL URLWithString:[UMOnlineConfig getConfigParams:@"GuizeImageUrl"]] placeholderImage:kDefaultImage192_124]; [headerView addSubview:imageView]; return headerView; }
運行結果:get