1) 必须使用下面的方法进行Cell类的注册:
// -(void)registerClass:forCellWithReuseIdentifier:
// -(void)registerClass:forSupplementaryViewOfKind:withReuseIdentifier:
// -(void)registerNib:forCellWithReuseIdentifier:
// -(void)registerNib:forSupplementaryViewOfKind:withReuseIdentifier:
//初始化
UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayoutalloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
self.collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0,kNavHeight,kDeviceWidth,kDeviceHeight-kNavHeight*2-kTabBarHeight-20)collectionViewLayout:flowLayout];
//注册
[self.collectionView registerClass:[VideoCell class] forCellWithReuseIdentifier:@"cell"];
//设置代理
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
[self.viewaddSubview:self.collectionView];
#pragmamark - collectionView delegate
//设置分区
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView{
return1;
}
//每个分区上的元素个数
- (NSInteger)collectionView:(UICollectionView *)collectionViewnumberOfItemsInSection:(NSInteger)section
{
return24;
}
//设置元素内容
- (UICollectionViewCell*)collectionView:(UICollectionView *)collectionViewcellForItemAtIndexPath:(NSIndexPath *)indexPath
{
staticNSString *identify =@"cell";
VideoCell*cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifyforIndexPath:indexPath];
[cell sizeToFit];
if (!cell){
}
VideoModel*model = [self.videoModels objectAtIndex:indexPath.row];
NSURL *url =[NSURL URLWithString:model.videoImgURL];
[cell.imgView setImageWithURL:url];
cell.titleLbale.text = model.videoTitle;
returncell;
}
//设置元素的的大小框
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
UIEdgeInsetstop = {5,10,15,5};
returntop;
}
//设置顶部的大小
-(CGSize)collectionView:(UICollectionView *)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForHeaderInSection:(NSInteger)section{
CGSizesize={0,0};
returnsize;
}
//设置元素大小
-(CGSize)collectionView:(UICollectionView *)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
//NSLog(@"%f",(kDeviceHeight-88-49)/4.0);
return CGSizeMake(240,(kDeviceHeight-kNavHeight*2-kTabBarHeight-20)/4.0);
}
//点击元素触发事件
-(void)collectionView:(UICollectionView *)collectionViewdidSelectItemAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"%@",indexPath);
DetailVideoViewController *detailVC = [[DetailVideoViewControlleralloc]init];
[self.navigationControllerpushViewController:detailVCanimated:YES];
[detailVC release];
}