UICollectionView的創建基本與UITableView的創建方式相同
首先,創建繼承於UICollectionView的子類
然後在初始化方法中設置一些屬性
- (id)initWithFrame:(CGRect)frame { UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; flowLayout.minimumInteritemSpacing = 0; //列間距 flowLayout.minimumLineSpacing = 0; //行間距 self = [super initWithFrame:frame collectionViewLayout:flowLayout]; if (self) { //隱藏滑塊 self.showsHorizontalScrollIndicator = NO; self.showsVerticalScrollIndicator = NO; //設置代理 self.delegate = self; self.dataSource = self; //設置背景顏色(默認黑色) self.backgroundColor = [UIColor whiteColor]; //注冊單元格 [self registerClass:[YSStudentStatusCell class] forCellWithReuseIdentifier:identify]; } return self; }
先看cell的創建
//創建cell
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
ModelStudent *model = self.dataArray[indexPath.item];
//子類化的cell
YSStudentStatusCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identify forIndexPath:indexPath];
[cell configureWithModel:model.StuUserInfo];
return cell;
}
collectionView的子類化cell創建的初始化方法如下,我用init不執行
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self initView]; } return self; }
//collection頭視圖的注冊 [self registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Identifierhead"];創建頭視圖的協議方法
//組的頭視圖創建 - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { UICollectionReusableView *headView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"Identifierhead" forIndexPath:indexPath]; headView.backgroundColor = [UIColor blueColor]; return headView; }
另外說明一下 flowLayout 的使用
flowLayout可以說是collectionView的布局屬性,設置不同 flowLayout ,可以加載出不同的collectionView的布局式樣