测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布日期最新发布 | 2017年10月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Sean Kladek 维护。
SKCollectionViewDataSource 提供了一个对象来处理大多数 UICollectionViewDataSource 逻辑。它处理计算行和分区数量、检索单元格和补充视图,并提供更新数据源后台数组的函数。查看工作区中的 SampleProject,以查看一些使用示例。
初始化 CollectionViewDataSource 对象的最简单方法是通过提供一个数组、单元格配置,可选地提供一个 SupplementaryViewConfiguration
对象数组。单元格注册将由 CollectionViewDataSource
对象处理。对象数组可以是 1 维或 2 维数组。单维数组将显示为单分区集合视图。二维数组将显示为多个分区。
import SKCollectionViewDataSource
let textCellNib = UINib(nibName: "TextCell", bundle: Bundle.main)
let cellConfiguration = CellConfiguration<String>(cell: textCellNib) { (cell, object) in
// Style the cell with the data object here
}
let dataSource = CollectionViewDataSource(objects: array, cellConfiguration: cellConfiguration)
collectionView.dataSource = dataSource
如果您需要访问单元格的重用标识符或者需要在集合视图中使用多个单元格类型,您可以选择自己注册单元格。
import SKCollectionViewDataSource
collectionView.register(YourCellClass.self, forCellWithReuseIdentifier: "YourReuseIdentifier")
let dataSource = CollectionViewDataSource(objects: array, delegate: self)
tableView.dataSource = dataSource
注意:如果选择自己处理单元格注册,必须实现 CollectionViewDataSourceDelegate 的 cellForItemAtIndexPath
方法并返回每个索引路径的单元格。
每个自动注册的初始化方法都需要一个 CellConfiguration 对象。此对象将告诉 CollectionViewDataSource 如何配置每个单元格。CellConfiguration 对象可以使用单元格类或 nib 初始化。除此之外,还有一个 CellPresenter 闭包参数可用。此闭包会返回一个单元格和来自对象数组的对象。这可用于使用返回的对象中的值来填充单元格。
如果集合视图中包含补充视图,可以使用 SupplementaryViewConfiguration 对象添加和配置它们。该对象可以使用视图类或 nib 和视图类型初始化。此外,还有一个 SupplementaryViewPresenter 闭包参数可用。此闭包会返回一个视图和它将显示的分区。这可用于为显示在该分区内的视图进行配置。
CollectionViewDataSource
有一个可选的代理。这作为 UICollectionViewDataSource
方法的传递。代理对象可以通过实现相应的代理方法覆盖 CollectionViewDataSource
的任何实现。
有一些方法用于操纵数组中的数据。更新数据源将不会触发任何类型更新在表格视图中。这必须由开发人员处理。
这将删除提供的索引路径处的对象。
这将在提供的索引路径处插入提供的对象。
这会将索引路径from处的对象移动到索引路径to。
这返回提供的索引路径处的对象。
这用提供的对象数组替换现有的对象数组。