我还是UICollectionView的新手,所以我需要帮助了解如何正确链接布局和数据。让我们说我使用基本的流布局(或其子类),并在部分中使用一列项目。根据部分的内容,我想要向左或向右定位标题。
标题和我的数据的布局属性之间的连接应该在哪里发生?我似乎无法连接点......
答案 0 :(得分:0)
来自http://www.objc.io/issue-3/collection-view-layouts.html
集合视图布局有两种常规类型:
其计算与内容无关的布局。这是你从UITableView和UICollectionViewFlowLayout知道的“简单”案例。每个单元格的位置和外观不依赖于它显示的内容,而是依赖于所有单元格列表中的顺序。以默认流布局为例。每个单元格位于其前一个单元旁边(如果没有剩余空间,则位于下一行的开头)。布局对象不需要访问实际数据来计算布局。
需要进行内容相关计算的布局。我们的日历视图就是这种类型的一个例子。它要求布局对象直接询问集合视图的数据源,以查看它应显示的事件的开始和结束日期。在许多情况下,布局对象不仅需要有关当前可见单元格的数据,还需要来自所有记录的一些信息,以便首先确定哪些单元格当前可见。
在我们的日历示例中,布局对象 - 如果要求某个矩形内的单元格的属性 - 必须迭代数据源提供的所有事件,以确定哪些位于请求的时间窗口中。将其与流布局进行对比,其中一些相对简单且与数据源无关的数学足以计算位于特定矩形中的单元的索引路径(假设网格中的所有单元具有相同的大小)。
具有依赖于内容的布局强烈表明您需要编写自己的自定义布局类,并且不会通过自定义UICollectionViewFlowLayout来实现。这就是我们要做的事情。
UICollectionViewLayout的文档列出了子类应覆盖的方法。
我建议您在那里阅读并查看他们的日历示例。