TableManager 1.11.0

TableManager 1.11.0

测试已测试
语言语言 SwiftSwift
许可证 无声明
发布最新发布2018 年 10 月
SPM支持 SPM

MorbixCristian Madrid 维护。



TableManager

Version License Platform Carthage compatible Build Status

TableManagerUITableView 的扩展。以更简单的方式操作您的表格。添加部分和行。配置头部和底部。单独隐藏和显示行。并且这个库会为您处理所有协议。这是您期望的表格。

要求

它需要 Xcode 10.0 和 Swift 4.2。

您的项目部署目标必须是 iOS 8.0+

安装

CocoaPods

TableManager 通过 CocoaPods 提供。要安装它,只需在你的 Podfile 中添加以下行

pod 'TableManager'

手动

您也可以通过将 TableManager 文件拖拽到您的项目中来自动安装。

基本用法

只需两步即可配置表格

第一步 - 导入 TableManager
import TableManager
第二步 - 添加一行配置
tableView.addRow().setConfiguration { _, cell, _ in 
    cell.textLabel?.text = "Row \(number)"
}

完整示例

import TableManager

class ViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        (1...10).forEach { n in
            tableView.addRow().setConfiguration { _, cell, _ in 
                cell.textLabel?.text = "Row \(n)"
            }    
        }
    }
}

Basic Usage

文档

魔法从这里开始:添加行。

直接使用UITableView的扩展
tableView.addRow()
或者实例化一个行并将其添加到表格中
let someRow = Row()
tableView.addRow(someRow)
您可以在指定的部分中添加行,例如最后一个部分
let someRow = Row()
tableView.sections.last?.addRow(someRow)

可见性

您可以更改任何部分和任何行的 visible 属性。

someRow.setVisible(true)

someSection.setVisible(false)

配置自定义单元格

您可以设置标识符和 configuration 属性。

let row = Row(identifier: "CellBasic", object: someString)

row.setConfiguration { (row, cell, indexPath) in
    if let text = row.object as? String {
        cell.textLabel?.text = text
    }
}

tableView.addRow(row)

或者声明一个 Row.Configuration 并将其分配给任何行

let configuration: Row.Configuration = { (row, cell, indexPath) -> Void in
    if let text = row.object as? String {
        cell.textLabel?.text = text
    }
}
let rowA = tableView.addRow(Row(identifier: "CellBasic", object: someObject))
rowA.setConfiguration(configuration)

let rowB = tableView.addRow(Row(identifier: "CellBasic", object: otherObject))
rowB.setConfiguration(configuration)

行选择事件

您可以设置didSelect属性

let row = Row(object: someString)

row.setDidSelect { (row, tableView, indexPath) in
    if let text = row.object as? String {
        print(text + " selected")
    }
}

tableView.addRow(row)

或者声明一个Row.DidSelect并将其分配给任何行

let didSelect: Row.DidSelect = { (row: Row, tableView: UITableView, indexPath: NSIndexPath) -> Void in
    if let text = row.object as? String {
        print(text + " selected")
    }
}

let rowA = tableView.addRow(Row(object: someString))
rowA.setDidSelect(didSelect)

let rowB = tableView.addRow(Row(object: someString))
rowB.setDidSelect(didSelect)

已选中行

您可以获取与选中单元格对应的行

if let selectedRow = tableView.selectedRow() {
    print('the selected row is: ' + selectedRow.object)
}

可见行

您可以获取在用户界面上显示的单元格所在的可见行

if let visibleRows = tableView.visibleRows() {
    visibleRows.forEach { row in
        print(row)
    }
}

UIScrollViewDelegate事件

您可以自行处理所有的scrollview代理

class TableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
            
        tableView.scrollViewDelegate = self
        
        // [...]
    }
    
    override func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print(scrollView.contentOffset.y)
    }
    
} 

拖放功能或排序

在编辑表格时,只需在setCanMove方法中传递true即可使行可拖动

let row = tableView.addRow()
            
row.setCanMove(true)

// [...]

tableView.editing = true

Drag and Drop

删除

在编辑表格时,只需在setCanDelete方法中传递true即可使行可删除

let row = tableView.addRow()
            
row.setCanDelete(true)

// [...]

tableView.editing = true

Deletion

您还可以轻松编辑标题确认

row.setCanDelete(true, titleForDeleteConfirmation: "Go away")

Go Away

索引导航标题

您可以通过为每个想要显示在索引导航中的部分传递indexTitle,调用setIndexTitle方法来创建索引导航标题(例如iOS上的联系人列表)。

let section = tableView.addSection().setIndexTitle("A")

Index Titles

更改日志

前往更改日志

贡献

欢迎提交您的pull请求,提出任何更新建议,报告错误或创建功能请求。

只是想打个招呼? -> [email protected]

贡献者

作者: @Morbin_ / fb.com/hgmorbin

查看帮助改进此项目的所有人: 贡献者

授权

TableManager适用于MIT许可证。更多信息请参阅LICENSE文件。