UICollectionView
来源:互联网 发布:2015nba体测数据 编辑:程序博客网 时间:2024/05/21 19:08
初始化UICollectionViewFlowLayout
// 创建一个网状结构布局 UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; // 设置网状结构的具体属性: // 最小行间距 layout.minimumLineSpacing = 20; // 最小列边距 layout.minimumInteritemSpacing = 20; // item的大小 系统会根据宽高自动生成几排或几列 layout.itemSize = CGSizeMake(140, 200); // 表头size layout.headerReferenceSize = CGSizeMake(100, 100); // 表尾size layout.footerReferenceSize = CGSizeMake(100, 100); // 滚动方向 默认是竖着的 layout.scrollDirection = UICollectionViewScrollDirectionVertical; // 内边距 layout.sectionInset = UIEdgeInsetsMake(30, 30, 30, 30); // 设置item强制size layout.estimatedItemSize = CGSizeMake(140, 200);
用初始化的layout去初始化collectionView
// 创建collectionView UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:layout]; // 设置代理与数据源代理 collectionView.delegate = self; collectionView.dataSource = self; // 设置背景颜色(默认是黑的) collectionView.backgroundColor = [UIColor whiteColor]; [self.view addSubview:collectionView]; [collectionView release]; [layout release];
注册
如果是系统的cell 或者 header 和 footer 那么就给系统类注册
如果是自定义的cell header footer 那么就给自定义类注册(自定义类继承于系统类)
// 注册要使用的cell [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"MyCell"]; // 注册表头 [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MyHeaderView"]; // 注册表尾 [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"MyFooterView"];
协议方法
// 返回每个分区的items数- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ return 10;}// 返回每个索引下 UICollectionViewCell的样式- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ // 重用池中有可以用的 就拿去用(返回给你) // 如果没有就创建一个 // 必须注册一下 要使用的标识符的cell 才能使用 // 系统才知道 要从重用池中 取出哪个类型的cell UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath]; cell.backgroundColor = [UIColor redColor]; return cell;}// 设置表头和表尾- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{ // 判断返回表头类型 还是 表尾类型 if ([kind isEqualToString:UICollectionElementKindSectionHeader]) { // 表头 // 去重用池中找 判断一下 有就用 没有就建 // UICollectionElementKindSectionHeader 表头的类型 // 可重用的View 分为2种 一种表头 一种表尾 UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"MyHeaderView" forIndexPath:indexPath]; // 设置颜色 headerView.backgroundColor = [UIColor cyanColor]; return headerView; }else{ // 表尾 UICollectionReusableView *footerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"MyFooterView" forIndexPath:indexPath]; footerView.backgroundColor = [UIColor brownColor]; return footerView; }}
0 0
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- LeetCode 225 Implement Stack using Queues
- qt中如果使用svg格式的图片在QPainter中绘制图形
- datatables服务器端分页查询
- App 被拒绝的理由,你中招了么!!!
- http的无状态无连接到底是什么含义
- UICollectionView
- pulltorefresh框架实现刚进入界面就开始上拉加载数据
- C++句柄类详解
- JS常用事件
- 10条命令,一分钟分析Linux性能问题
- 把CGPoint对象添加到数组
- ServletFileUpload、MultipartRequest与MultipartParser的区别
- I2S 和 PCM 区别
- 在ImageButton上添加文字