UICollectionView的简单介绍


转自:http://blog.youkuaiyun.com/abellh/article/details/50532661

1.UICollectionView默认的背景颜色是黑色的

2.注意使用UICollectionView,第一步设置背景颜色

2.1显示内容和UITableView非常相似

第一步 设置数据源的代理,代码设置View.dataSoure=self

2.2 .拖线

2.3 实现数据源的协议

2.4 实现方法

3.UICollectionView 它的Cell 默认只能从原型Cell中进行加载

4.对item设置的时候一定要注意:一行上展现的item的个数,它使由系统计算获取的,没有办法进行具体个数的设置,在设置属性的使用 Cell Size和MinSpacing 设置一定要谨慎.

设置MinSpacing 这个间距会根据一行展现的控件的个数而变化

在开发中如果使用UIcollectionCell,设置间距和CellSize的时候,按照最小尺寸的屏幕进行设定 开发中按照3.5英寸设定


5.代码方式创建

注意点:1.在UITableView中创建的时候分为普通样式和分组样式.这个样式是在初始化的时候已经设定了,在UIColltionView同样的道理,它也有自己的样式并且在初始化的时候进行设置. 默认UIColltionView它的样式是通过layout进行设定,layout中默认有;俩种样式 flow 流水 custom 自定义

必须在初始化的时候,进行设置layout

[objc]  view plain  copy
  1. UIContionview*contionView=[UIColltionView alloc]initWithFrame:CGRectZero collectionViewLayout :flowlayout]  
5.2注册Cell

[objc]  view plain  copy
  1. [collertionView registerClass:[UICollectionView class]forCellWithRuseIdentifier:resueId];  

5.3 Cell 的设置,是通过layou t进行设置的
  设置Cell的大小
[objc]  view plain  copy
  1. flowLayout.itemSize=CGSizeMake(100.100);  
设置离屏幕的间距

[objc]  view plain  copy
  1. folowLayout.sectionInset=UIEdgeInsetsMake(10,10,10,10);  

设置item与item之间的间距

[objc]  view plain  copy
  1. folowLayout.minimumInteritemSpacing=10;  

设置行与行之间的间距

[objc]  view plain  copy
  1. flowLayout.minimumLineSpacing=30;  
[objc]  view plain  copy
  1.   
UICollectionView它行间距以及item间距没有代理方法设置,只能通过layout的属性进行设置在初始化的时候就固定了,后面没有办法动态改变.

5.4 使用xib的方式创建Cell

5.4.1 注册xib文件

[objc]  view plain  copy
  1. UINib*nib=[UINib nibWithNibName:ABCollectionViewCell" bundle:[NSBundle mianBundle]];  

第一个参数:代表nil文件的名字

第二个代表路径:只需要把mianBoundle给它就可以了;


[objc]  view plain  copy
  1. [self.conectionView registerNib:nib forCellWithReuseIdentifier:resuId];  
第一个参数,根据Nib 文件的名字获取一个UINib的对象

第二个参数 重用标识

5.4.2xib中设置Cell的宽高时无效的 需要通过layout进行设置 itemSize

[objc]  view plain  copy
  1.   

5.5 item点击事件的响应


item事件响应,在delegate代理中

[objc]  view plain  copy
  1. -(void)collectionView:(UICollectionVeiw*)collectionView didSelectItemAtIndexPath:(NSindexPath*)indexPath  
5.6 CollectionView的滚动方向,只能设置一个方向,不能设置多个方向;

item的排列方式:受collectionView的滚动所影响

设置最小的间隔minSpacing 也受滚动方向的影响

设置垂直滚动,头标签和尾标签 宽度无效果->屏幕的宽度

设置水平滚动,头标签和尾标签 高度无效果->屏幕的高度


5.7设置按钮的点击状态

1.让CollectionView的item不可以点击:

[objc]  view plain  copy
  1. self.collectionView.allowsSelection=YES;  

让多个item响应

[objc]  view plain  copy
  1. self.collectionView.allowsMultipleSelection=YES;  
5.8页头和页尾(组头组尾)
1.组头组尾,使用的是同一个控件UICollectionReuseableView

2.默认的高度起作用,但控件属性都没有任何作用

想要使用,需要实现UICollectionView的数据源方法

[objc]  view plain  copy
  1. -(UICollectionReusableView*)collectionView:(UICollectionView*)collectionViewviewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath  
3.在使用的时候注意

头尾需要进行设置重用的标识,而标识是不一样的,所以要根据头尾的标识进行判断

想找到kind 需要到UICollectionViewFlowLayout类中查找 

[objc]  view plain  copy
  1. NSString *const UICollectionElementKindSectionHeader   
[objc]  view plain  copy
  1. NSString *const UICollectionElementKindSectionFooter  

4.头和尾是自动重用的根据一个标识 .

5 传人数据,需要注意:声明属性的方法.这个方法 只有一个参数 而在UICollectionResuableView中.设置数据需要知道头尾,所以要传人俩个参数 所以这里只能定义方法,不能定义成员属性.

6.自定义UIview要继承UICollectionReuseableView


7.代码创建控件

1.注意要注册Cell

2.重写初始化方法的关键,在与系统初始化控件会调用那个方法

3.在UICollectionView中注册的Cell 与使用的匹不匹配.

4.在自定义中控件中不能使用autolayout约束,否则会导致外面组的insets出问题 在cell中不能使用autolayout约束.






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值