iOS:UICollectionView的子類化建立
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;}
collectionView的協議方法基本與tableView的相同,主要區別在於cell的建立與頭視圖的建立
先看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;}
collectionView頭視圖的建立,首先需要註冊頭視圖,註冊demo我一般與cell註冊寫在一塊
//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的布局式樣