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的布局式樣