6.UICollectionViewController和UITableViewController之间的异同
2015-08-26 20:14
549 查看
最近在项目中会用到UICollectionViewController,所以将它与常用的UITableViewController做一个对比:
两者在使用上大致相同,在初始化之后,都会设置相应的数据源和代理,通过重写相应的数据源和代理方法来进行具体操作,现在着重说一下它们的一些小不同:1.初始化
UITableViewController在初始化后,只要实现它的数据源和代理方法,就可以直接展现出来。而UICollectionViewController推荐使用的是initWithCollectionViewLayout:方法,该中会传入一个layout,只有有了这个layout才能显示出来。或者重写init方法,在init方法中设置它的布局方式,也就是layout.这个layout可以使用继承自UICollectionViewLayout的两个子类 :UICollectionViewFlowLayout 和 UICollectionViewTransitionLayout。
这里贴一下常用的流水布局的代码:
//1.创建layout // 1.1创建流水布局 UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; // 1.2设置每个格子的尺寸 layout.itemSize = CGSizeMake(thumbnailWidth, thumbnailWidth); // 1.3设置整个collectionView的内边距 CGFloat paddingY = 20; layout.minimumInteritemSpacing = minimumItemspace; layout.sectionInset = UIEdgeInsetsMake(0, minimumLinespace, paddingY, minimumLinespace); // 1.4设置每一行之间的间距 layout.minimumLineSpacing = minimumLinespace;
2.重用
两个里面的cell都可以进行重用,但是UICollectionViewCell在初始化时不会传入identifier ,这会导致cell没有identifier可以用于在缓存池中寻找,所以我们需要在ViewDidload方法中注册一个cell,这时它会传入一个identifier,当缓存池中找不到cell时,系统会用注册的cell自动创建一个供使用。如果要注册自己写得类,而该类的视图是从xib文件中生成的,必须注册nib文件。方法如下:[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
<pre name="code" class="objc"> UINib *nib = [UINib nibWithNibName:@"CYLProductItem" bundle:nil]; [self.collectionView registerNib:nib forCellWithReuseIdentifier:reuseIdentifier];
3.index
在UITableViewController中,index取出相应组合组中行的两个属性是section和row,而在UICollectionViewController中,index对应的是section和item.相关文章推荐
- collectionView学习
- iOS6新特征:UICollectionView介绍
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UIRefreshControl[下拉刷新]使用示例
- Core Animation之多种动画效果
- UICollectionView
- iOS collectionview小结
- iOS_21团购_UICollectionView的基本使用
- iOS_21团购_通过block对请求工具类的代理方法进行二次封装
- iOS_21团购_控制器继承关系图
- iOS_无限滚动
- UI中CollectionView的创建与使用
- iOS换一种思路写一个无限轮播的滚动视图
- 动态高度的CollectionView,支持tableView内嵌
- 【OC】【一秒就会】【collectionView 头部吸住功能】
- 【swift3.0】- 创建CollectionView方式的细节问题
- tableView 带动collectionView
- CollectionView Header的使用
- Swift UICollectionView 使用
- iOS使用UICollectionView实现可旋转菜单