新建cellectionViewide
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];spa
CollectionViewController *vc = [[CollectionViewController alloc]initWithCollectionViewLayout:layout];3d
2. 设置不显示滚动条orm
self.collectionView.showsHorizontalScrollIndicator = NO;ci
self.collectionView.showsVerticalScrollIndicator = NO;rem
3. 移除cell的子控件it
当每一个cell中的子控件都不同的时候,咱们复用cell以前,须要移除cell里边的全部子控件io
while (cell.contentView.subviews.firstObject) {im
[cell.contentView.subviews.firstObject removeFromSuperview];layout
}
4. 设置间距
//定义每一个UICollectionView 的间距(返回UIEdgeInsets:上、左、下、右)
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(kStatus_Bar_Height, kGrdGap_Crdgap, kStatus_Bar_Height, kGrdGap_Crdgap);
}
// 设置两列之间的最小间隔
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return kGrdGap_Crdgap;
}
// 设置最小行间距,也就是前一行与后一行的中间最小间隔
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return kStatus_Bar_Height;
}
5. 设置cell的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CardStyleModel *csm = self.responseModel.cardStyle;
CGFloat cardWidth = 0;
if ((self.toInterfaceOrientation == UIInterfaceOrientationPortrait) || (self.toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)) {
cardWidth = kScreen_Width - 2 * kGrdGap_Crdgap;
}else if((self.toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)){
cardWidth = (kScreen_Width - 3 * kGrdGap_Crdgap) * 0.5;
}
CGFloat cellWidth = cardWidth / [csm.colCount intValue];
CGFloat cellHeight = cellWidth;
CGFloat cardHeight = cellHeight * [csm.rowCount intValue];
return CGSizeMake(cardWidth, cardHeight);
}