代理协议
UICollectionViewDataSource
数据源代理协议UICollectionViewDelegate
代理协议UICollectionViewDelegateFlowLayout
布局代理协议
UICollectionView基本使用
#pragma mark -- UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 2;
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 5;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UICollectionViewCell" forIndexPath:indexPath];
return cell;
}
- (UICollectionView *)collectionView{
if (!_collectionView) {
UICollectionViewFlowLayout *flowLayOut = [[UICollectionViewFlowLayout alloc] init];
[flowLayOut setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[flowLayOut setItemSize:CGSizeMake(40, 40)];
[flowLayOut setMinimumInteritemSpacing:1];
[flowLayOut setMinimumLineSpacing:4];
[flowLayOut setSectionInset:UIEdgeInsetsMake(0, 0, 0, 16)];
CGRect frame = self.view.frame;
_collectionView = [[UICollectionView alloc] initWithFrame:frame collectionViewLayout:flowLayOut];
_collectionView.showsVerticalScrollIndicator = NO;
_collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.backgroundColor = [UIColor clearColor];
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.clipsToBounds = YES;
[_collectionView registerClass:[PRPatternCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];
}
return _collectionView;
}
#pragma mark --UICollectionViewDelegateFlowLayout
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
#pragma mark --UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;
- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath;
Xib在UICollectionViewCell中的复用
[self.collectionView registerNib:[UINib nibWithNibName:@"JJCollectionCell" bundle:nil] forCellWithReuseIdentifier:@"JJCollectionCell"];
JJCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"JJCollectionCell" forIndexPath:indexPath];