标签:
一.集合视图(UICollectionView)
1.集合视图的概念
2.如何创建
3.集合视图的布局UICollectionViewFlowLayout
4.自定义cell和 布局协议UICollectionViewDelegateFlowLayout
使用时cell一般选择自定义,而在布局时候要使用代理.
UICollectionView的基本使用示例代码分析:
#import "ViewController.h"
#import "CollectionReusableView.h"
@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
@property(nonatomic,strong)UICollectionView *collectionView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self loadCollectionView];
//注册方法创建UICollectionView
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"CELL"];
}
-(void)loadCollectionView
{
//布局类 控制每一个item的样式
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake(100, 100);
//改变上下行的大小(默认是10)
flowLayout.minimumLineSpacing = 20;
//设置两个item中间的大小(默认为10)
flowLayout.minimumInteritemSpacing = 37.5;
//控制举例屏幕的距离 上 左 下 右
//flowLayout.sectionInset = UIEdgeInsetsMake(100, 100, 100, 0);
//横向滑动
//flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowLayout];
//背景色
self.collectionView.backgroundColor = [UIColor whiteColor];
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
[self.view addSubview:self.collectionView];
//注册haeder和footer方法
//给collectionView 注册一个headerView
[self.collectionView registerClass:[CollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Header"];
//给collectionView 注册一个footerView
[self.collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"Footer"];
}
//返回header和footer 设置header和footer
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
UICollectionReusableView *header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Header" forIndexPath:indexPath];
return header;
} else{
UICollectionReusableView *footer = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"Footer" forIndexPath:indexPath];
return footer;
}
}
//设置collectionView的Footer和header的大小-------UICollectionViewDelegateFlowLayout代理方法----------
//设置collectionView的Footer的大小
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
return CGSizeMake(100, 100);
}
//设置collectionView的header大小
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
return CGSizeMake(100, 100);
}
//创建UICollectionView时,需要实现的两个代理方法-----------------------------------
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 100;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
//UICollectionViewCell 没有本身携带的控件,就是一个空白的
//所以在项目中一般都自定义一个UICollectionViewCell
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CELL" forIndexPath:indexPath];
//设置背景颜色
cell.backgroundColor = [UIColor redColor];
return cell;
}
二.通知中心(NSNotificationCenter)
第二十一讲.UICollectionView(集合视图)以及瀑布流效果, 通知中心(NSNotificationCenter).
标签:
原文地址:http://www.cnblogs.com/erdeng/p/4864853.html