最近在一家公司实习,学习一些ios的知识。由于之前没有使用过UICollectionView,因此带个人导师让我仿照公司APP中的一个UICollectionView本身作一个练练手。期间遇到了一些问题:咱们知道咱们通常在UITableView中只设置一个headerView与footerView,可是我在UICollection中使用的时候,出现了每一个Section中都有一个headerView和footerView。其实这是正确的,并无什么错误,只是否是咱们想要的结果(我只想一个UICollectionView只有一个headerView和footerView),因此咱们要作一些处理。ios
row和section是在UITableView中定义的布局
indexPath.section:表明了单元格(Cell)的第几个分区学习
indexPath.row:表明分区的第几行spa
必定要理解上面这两个概念,由于这很重要。io
通常状况下咱们使用UICollectionView的时候并无设置分区,咱们只是使用一个分区,系统默认的也是一个分区。table
正是由于只有一个分区,因此咱们才会显示一个headerView和一个footerView。若是咱们设置了几个分区的话,那么全部的分区都会有一个headerView和footerView。这里我就要说一下UICollectionView和UITableView加载headerView与footerView的区别。方法
UITableView加载headerView与footerViewim
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;img
这里后面的参数是section;tab
UICollectionView加载headerView与footerView
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath;
这后面的参数是indexPath;
对于UITableView中headerView、footerView的加载方法网上已经有不少了,这里就不作介绍了!下面来讲说UICollectionView的加载。
正如上面说的,若是咱们只有一个分区的话,那咱们能够不用进行判断,可是当咱们有几个分区的时候,咱们要在加载headerView和footerView的时候加以判断。
你觉得这样就能够了吗?若是你只是设置这个的话,那么你就错了,除此以外你还要设置布局代码。
以上就是本人的解决方案,也不知道理解的是否到位,但愿您能够指出个人错误之处,你们一块儿相互学习。最后,谢谢您的观看。
做者:KingTortoise 连接:https://www.jianshu.com/p/c540e5d92201 來源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。