SKTableViewDataSource 3.0.0

SKTableViewDataSource 3.0.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2018年6月
SPM支持 SPM

Sean Kladek 维护。



  • 作者
  • Sean Kladek

SKTableViewDataSource

Travis Status Codecov Status Pod Version Platform Status License Status

SKTableViewDataSource 提供了一个对象来处理大部分的 UITableViewDataSource 逻辑。它处理计算行和区域数量,检索单元格,并提供了更新数据源底层数组的方法。查看工作区中的 SampleProject 以查看一些用法示例。


安装

Cocoapods

安装通过 Cocoapods 支持。将以下内容添加到您想要使用 SKTableViewDataSource 的目标 pod file 中:

pod 'SKTableViewDataSource'

初始化

自动单元格注册

初始化TableViewDataSource对象的最简单方法是提供一个数组、单元格类或nib,以及一个用于在cellForRowAtIndexPath中处理单元格样式的CellPresenter闭包。单元格注册将由TableViewDataSource对象处理。对象数组可以是1维或2维数组。单维数组将显示为单个节表的表格。二维数组将以多个节显示。

import SKTableViewDataSource
let dataSource = TableViewDataSource(objects: array, cell: UITableViewCell.self, cellPresenter: { (cell, object) in
    cell.textLabel?.text = object
})

tableview.dataSource = dataSource

手动单元格注册

如果您需要访问单元格的重用标识符或需要在您的表格视图中使用多个单元格类型,您可以选择自己注册单元格。

import SKTableViewDataSource
tableView.register(YourCellClass.self, forCellReuseIdentifier: "YourReuseIdentifier")

let dataSource = TableViewDataSource(objects: array, delegate: self) {
    cell.textLabel?.text = object.rawValue
})

tableView.dataSource = dataSource

注意:如果您选择自己处理单元格注册,必须实现TableViewDataSourceDelegate的cellForRowAtIndexPath方法,并为每个索引路径返回一个单元格。


CellPresenter

自动单元格注册的每个初始化方法都有一个可选的CellPresenter闭包。闭包返回两个参数:一个单元格和一个对象。此闭包可以用来将对象的值填充到单元格中。


TableViewDataSourceDelegate

TableViewDataSource有一个可选的代理。它作为UITableViewDataSource方法的传递。代理对象可以通过实现相应的代理方法来覆盖任何TableViewDataSource实现。


更新数据数组

有几种方法可以用于操作数组中的数据。更新数据源不会触发表格视图中的任何更新。这必须由开发者处理。

deleteObjectAt(_:)

这将删除提供索引路径的对象。

indexPathOf(_:) -> IndexPath?

这将返回输入对象的索引路径。

insert(object:at:)

这将插入提供对象到提供的索引路径。

moveObjectFrom(_:to:)

这将移动从索引路径到到的索引路径的对象。

objectAt(_:) -> T

这将返回提供索引路径的对象。

setObjects(_:)

这将用提供的对象数组替换现有的对象数组。