MSTableViewDataSource 版本 1.5.2

MSTableViewDataSource 版本 1.5.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年3月
SwiftSwift 版本3.0
SPM支持 SPM

Prince Ugwuh 维护。



  • 作者:
  • Prince Ugwuh

TableViewDataSource

用 Swift 编写的 UITapGestureRecognizer 数据源类,它移除了重复的代码,并使视图控制器保持轻量级

该存储库中确实有一个示例项目,您可以下载、查看并亲自了解这些功能是如何工作的。它们同时支持 Objective-C 和 Swift。

与 UITableView 一起工作

注意:如果您使用 UITableViewCell 作为 nib 文件,请确保将单元格注册到您使用的表格视图中。否则您将看不到单元格。

要使用 TableViewDataSource,您需要对其进行初始化并提供您的 UITableViewCell 标识符。您完成后,请将 UITableView dataSource 设置为 TableViewDataSource 的 dataSource 属性。

   @IBOutlet weak var tableView: UITableView! {
     didSet {
       self.tableView?.dataSource = self.dataSource
     }
   }

  let dataSource: TableViewDataSource = TableViewDataSource(cellIdentifier: "<YourCellIdentifier>")

在您的 UITableViewCell 中添加此协议 TableViewCellDataSource。(我建议将其作为一个扩展来实现,以保持您的单元格及其配置方式分开。)

extension MyTableViewCell: TableViewCellDataSource {
   func configure(_ data: Any?) {
       /// setup your cell here     
   }  
}

从头开始构建 UITableViewCell

var items: [String] = ["Apples", "Oranges", "Grapes", "Bannanas"]
...
func buildTable() {
  var cellItems = [TableViewDataSourceCellItem]()
  for item in items {
    let cellItem = TableViewDataSourceCellItem()
    cellItem.identifier = "<YourCellIdentifier>"
    cellItem.item = item
    cellItems.append(cellItem)
  }
  
  self.dataSource = TableViewDataSource(cellItems: cellItems)
  self.tableView.dataSource = self.dataSource
  self.tableView.reloadData()
} 
...

处理UITableView分区

var items: [String] = ["Apples", "Oranges", "Grapes", "Bannanas"]
...
func buildTable() {
  var dataSources = [TableViewDataSource]()
  var cellItems = [TableViewDataSourceCellItem]()
  for item in items {
    let cellItem = TableViewDataSourceCellItem()
    cellItem.identifier = "<YourCellIdentifier>"
    cellItem.item = item
    cellItems.append(cellItem)
  }
  
  for i in 0..<3 {
    let dataSource = TableViewDataSource(cellItems: cellItems)
    dataSources.append(dataSource)
  }
  
  self.sectionDataSource = TableViewSectionDataSource(dataSources: dataSources)
  self.tableView.dataSource = self.sectionDataSource
  self.tableView.reloadData()
} 
...

处理静态UITableViewController

使用相同的设置,您可以在静态表格视图中管理动态单元格。

示例即将推出

索引设置

即将推出

移动和删除单元格

即将推出

安装

CocoaPods

如果您使用CocoaPods,只需将以下内容添加到您的Podfile中

pod 'MSTableViewDataSource'

通过在终端中运行此命令进行安装

pod install

然后将其导入到所有使用该库的文件中

import MSTableViewDataSource
Carthage

只需将其添加到您的Cartfile中

github "Prince2k3/TableViewDataSource"

然后将其导入到所有使用该库的文件中

import TableViewDataSource