IOS开发我们爱Coding技术

iOS-基础控件-- UICollectionView简单的总结

2016-05-21  本文已影响886人  云之君兮鹏
**门掩黄昏,无计留春住。**<卡比兽>
@interface ViewController ()  <UICollectionViewDataSource,UICollectionViewDelegate>
//  对其操作遵循的两个协议

@end

@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//第一步:创建UICollectionViewFlowLayout 它是专门给collectionView布局

 UICollectionViewFlowLayout *flowLayout =[UICollectionViewFlowLayout new];    

//第二步: 给定item的大小

 flowLayout.itemSize=CGSizeMake(60, 60);    

//第三步: 设定每两个item的最小的间隔(垂直滚动)

 flowLayout.minimumInteritemSpacing=10;   

//每行之间的最小间隔 (水平滚动)

  flowLayout.minimumLineSpacing=40;   

//第四步: 设置滚动的方向 (垂直)

flowLayout.scrollDirection=UICollectionViewScrollDirectionVertical;       

//布局头部视图尺寸

flowLayout.headerReferenceSize=CGSizeMake(80, 80);    

//布局尾部视图尺寸

flowLayout.footerReferenceSize=CGSizeMake(80, 80);      

//视图的内边距

flowLayout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);      

//布局UICollectionView

UICollectionView *collection = [[UICollectionView alloc]initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:flowLayout];       

//设置代理

collection.delegate=self;    
collection.dataSource=self;    
collection.backgroundColor=[UIColor redColor];    
[self.view addSubview:collection];      

//注册cell

[collection registerClass:[FirstCollectionViewCell class] forCellWithReuseIdentifier:@"cell"];      

//注册头部视图

 [collection registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headerView"];    

//注册尾部视图

 [collection registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footerView"];

}

#pragma mark -------数据源 (必须实现的方法 )
//设置分区下item数

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{   
 return 20;
}

//返回collectionView的方法

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{   

FirstCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];   
cell.photoImage.image = [UIImage imageNamed:@"3.jpg"];
return cell;
}

//@optional
//设置分区数

-(NSInteger )numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{    
return 4;
}

//返回头部和尾部视图的样式

-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{       

//需要判断返回的是头部还是尾部视图

if ([kind isEqualToString:UICollectionElementKindSectionHeader])     
{        

//初始化头部视图

 UICollectionReusableView *headerView=[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headerView" forIndexPath:indexPath];              

//设置头部视图样式

headerView.backgroundColor=[UIColor cyanColor];               
return headerView;   
 }else
{        
UICollectionReusableView *footerView=[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footerView" forIndexPath:indexPath];              
 footerView.backgroundColor  = [UIColor greenColor];       
 return footerView;    
}   
 return nil;  
 }

//选择item时 ,会触发的方法

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{      

//indexPath 是由 section和item 组成

if (indexPath.item == 0 && indexPath.section == 0) {        
SecondViewController *secondVC=[SecondViewController new];  
点击第一区第一个单元cell跳转到  secondVC    
[self.navigationController pushViewController:secondVC animated:YES];   
 }else if (indexPath.item == 1 && indexPath.section == 0)
{        
ThirdViewController *thirdVC=[ThirdViewController new];
  点击第一区第二个单元cell跳转到 thirdVC
[self.navigationController pushViewController:thirdVC animated:YES];    
}

}

上一篇下一篇

猜你喜欢

热点阅读