2015/10/21 UICollectionViewController 使用
2015-10-21 23:19
483 查看
学习UICollectionViewController的使用。
- (instancetype)init
{
// 1.流水布局
UICollectionViewFlowLayout *layout =
[[UICollectionViewFlowLayout alloc] init];
// 2.每个cell的尺寸
layout.itemSize = CGSizeMake(80, 80);
// 3.设置cell之间的水平间距
layout.minimumInteritemSpacing = 0;
// 4.设置cell之间的垂直间距
layout.minimumLineSpacing = 10;
// 5.设置所有cell组成的一个整体与屏幕(ViewController)四周距离
layout.sectionInset =
UIEdgeInsetsMake(layout.minimumLineSpacing, 0, 0, 0);
return [super initWithCollectionViewLayout:layout];
}
[self.collectionView registerClass:[UICollectionViewCell class]
forCellWithReuseIdentifier:@"product"];
在调用- (UICollectionViewCell *)collectionView:(UICollectionView
*)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;设置每个单元格显示的内容(UICollectionViewCell)之前必须注册cell,一般在viewDidLoad中调用上面方法注册cell。
例如:
- (void)viewDidLoad
{
[super viewDidLoad];
// 1.注册cell(告诉collectionView将来创建怎样的cell)
UINib *nib = [UINib nibWithNibName:@"MJProductCell" bundle:nil];
[self.collectionView registerNib:nib forCellWithReuseIdentifier:
MJProductCellID];//通过xid自定义的cell
/*
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:MJProductCellID];//使用默认的UICollectionViewCell
*/
UICollectionViewCell的行是 indexPath。item
1.在创建的时候首先需要告诉控制器cell以什么样式显示 ,重写init初始化,在init方法中 UICollectionViewFlowLayout 控制cell的间距,大小,内边距
需要使用UICollectionViewDelegateFlowLayout 代理方法- (instancetype)init
{
// 1.流水布局
UICollectionViewFlowLayout *layout =
[[UICollectionViewFlowLayout alloc] init];
// 2.每个cell的尺寸
layout.itemSize = CGSizeMake(80, 80);
// 3.设置cell之间的水平间距
layout.minimumInteritemSpacing = 0;
// 4.设置cell之间的垂直间距
layout.minimumLineSpacing = 10;
// 5.设置所有cell组成的一个整体与屏幕(ViewController)四周距离
layout.sectionInset =
UIEdgeInsetsMake(layout.minimumLineSpacing, 0, 0, 0);
return [super initWithCollectionViewLayout:layout];
}
2.在cell的创建时候,需要在界面初始化的时候告诉控制器cell的ID是多少,使用那一种cell,是自定义的,还是xib的 还是系统的。
1)注册cell(告诉collectionView将来创建怎样的cell)[self.collectionView registerClass:[UICollectionViewCell class]
forCellWithReuseIdentifier:@"product"];
在调用- (UICollectionViewCell *)collectionView:(UICollectionView
*)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;设置每个单元格显示的内容(UICollectionViewCell)之前必须注册cell,一般在viewDidLoad中调用上面方法注册cell。
例如:
- (void)viewDidLoad
{
[super viewDidLoad];
// 1.注册cell(告诉collectionView将来创建怎样的cell)
UINib *nib = [UINib nibWithNibName:@"MJProductCell" bundle:nil];
[self.collectionView registerNib:nib forCellWithReuseIdentifier:
MJProductCellID];//通过xid自定义的cell
/*
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:MJProductCellID];//使用默认的UICollectionViewCell
*/
3.cell跟tabview的区别还有一点是 cell的行是 indexPath。row
UICollectionViewCell的行是 indexPath。item
相关文章推荐
- Under the Hood: Rebuilding Facebook for Android
- STL学习笔记-priority quene容器(优先级队列)
- STL学习笔记-quene容器(队列)
- STL学习笔记-deque容器(双端动态数组)
- DOTween 模仿NGUI Tween
- 【IOS 开发学习总结-OC-63】UIImage 与 CGImage,CGImageRef
- 黑马程序员--GUI
- String、StringBuffer和StringBuilder的异同和用法
- 【UIKit-106-1】UISwitch - 基础使用
- UVA-11324 The Largest Clique (强连通+DP)
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第六课)多个MVC的程序和故事版、UINavigationController、 Segues
- UIButton详解
- 删除链表中(不带头结点)值为value的结点,返回删除的个数
- percona慢查询分析工具:pt-query-digest使用介绍
- Ui培训之如何设计极简三色图标
- LeetCode---Unique Paths
- 移动界面UI颜色设计
- UI设计培训之进入BAT公司的前提
- GUI测试软件22款
- Android中的Uicc框架(转)