一.
1.UICollectionView默认的背景颜色是黑色.
2.注意 使用UICollectionView.第一步先设置背景颜色.
3.显示内容,UITableView相似
二.
1.设置数据源代理
2.代码设置 view.dataSoure=self
2.1拖线
2.2实现数据源的协议
3.实现方法
UICollectionView它的Cell默认只能从原型cell中进行加载
3.对item设置的时候一定要注意:
一行上展现的item的个数,它是由系统计算获取的,没有办法进行具体个数设置,在设置属性的使用Cell Size 和MinSpacing 设置一定要谨慎
这里设置的是MinSpacing 因为这个间距会根据一行展现控件的个数而变化
在开发中如果使用UICollectionViewCell.设置间距和CellSize的时候,按照最小的尺寸的屏幕进行设定,开发中按照3.5英寸进行设定
4.代码方式创建
注意点: 在UITableView 中创建的时候分为普通样式和分组样式,这个样式是在初始化的时候就已经设定了
在UICollectionView同样的道理,它也有自己的样式,并且必须在初始化的时候进行设定.
默认UICollectionView它的样式是通过layout进行设定,layout中默认有俩种样式 follow 流水 custom 自定义
必须在初始化的时候,进行设置layout
UICOllectionView*collectionView=[[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:flowlayout];
4.1注册Cell
[collectionView registerClass:[UIColectionViewCell Class]forCellWithReuseIdentifier];
4.2Celld 设置,是通过layout进行设置的
设置cell的大小
flowLayout.itemSize=CGSizeMake(100.100);
设置距离屏幕的间距
flowLayout.sectionInset=UIEdeInsetsMake(10,10,10,10);
设置item与item之间的间距
flowLayout.minmumInteritesmSpacing=10;
设置行与行之间的间距
flowLayout.minimumLineSpacing=30;
UICollectionView 它行间距以及item间距没有代理方法设置,只能通过layout的属性进行设置在初始化的时候就固定了,后面没有办法动态改变.
5.使用xib的方式创建cell 需要掌握的知识
5.1注册xib文件
UINib*nib=[UINib nibWithNibName:@"AbcollectionViewCell" boune:[NSBundle mianBUdle]];
第一个参数:代表nib文件的名字
第二个代表路径:只需要把mainBundle给它就可以了.
[self.collectionView registerNib:nib forCellWithRuseIdentifier:reuseId];
第一个参数 根据一个NIb文件的名字获取一个UINib的对象
第二个参数 重用的标识
4.2 xib中设置cell的宽和高是无效的
需要通过layout进行设置 itemSize.
4.3item的点击事件的响应
事件响应,在delegate代理中
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;
4.4collectionView的滚动方向,只能设置一个方向,不能设置多个方向
item的排列方式,受collectionView的滚动方向所影响
设置最小的间隔minSpacing 也受滚动方向影响
垂直滚动,头标签和尾标签 宽度无效果->屏幕的宽
水平滚动,头标签和尾标签 高度无效果->屏幕的高度
4.5设置按钮的点击状态
让collectionView中的item不可以点击
self.collectionView.allowsSelection=YES;
让多个item响应点击
self.collectionView.allOWsMultipleSelection=YES;
5页头和页尾(组头和组尾)
1.组头组尾,使用的是同一个控件UICollectionReuseableView
2.默认高度起作用,但是控件的属性都没有任何作用
想要使用,需要实现UICollectionView的数据源方法
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
3.使用的时候注意
头尾需要进行设置重用标识,而标识 是不一样的,所以要根据头尾的标识 进行判读.
会用到下面俩个代码的想要找到kind 需要到UICollectionViewFlowLayout类中 最上方查找
NSString *const UICollectionElementKindSectionHeader
;
NSString *const UICollectionElementKindSectionFooter
4.头和尾,是自动重用的,根据一个标识
5.传人数据,需要注意:声明属性的方法,这个方法只有一个参数,而在UICollectionResuableView中,设置数据需要知道头尾,所以要传人俩个参数,所以这里只能定义方法,不能定义成员属性,
6.自定义的UIView 要继承自UICollectionReuseableView
7.代码创建控件注意:
1.注意要注册Class
2.重写初始化方法的关键,在于系统初始化控件会调用那个方法
3.在UICollectionView中注册的Cell 与使用的匹不匹配
4.要注意,在自定义控件中不能使用autolayout约束,否则会导致外面组的insets出问题 在cell中不能使用autolayout约束