SwiftSortableTableViews 0.6.0

SwiftSortableTableViews 0.6.0

测试已测试
语言编程语言 SwiftSwift
许可证 NOASSERTION
发布最后发布2019年7月
SPM支持SPM

Brian Keane 维护。



  • 作者
  • Brian Keane

SwiftSortableTableViews

适用于 OSX 和 iOS

概览

SwiftSortableTableViews 是 UITableView 的扩展,能夠将 UITableViewCells 从一个 TABLE 中的一个拖拽到另一个 TABLE。示例项目在: https://github.com/briankeane/SwiftSortableTableViewsExample

安装

将以下内容添加到您的 Cocoapods 目标

pod 'SwiftSortableTableViews', '~>0.1.1'

设置

将故事板的 UITableView 类设置为 SortableTableView。然后在 viewDidLoad 方法中为它们各自分配 SortableTableViewDataSource 和 SortableTableViewDelegate,并创建一个 SortableTableViewHandler,将它传递一个 ViewController 的视图和要使用的 SortableTableViews 数组。

import SwiftSortableTableViews

class ViewController: UIViewController,SortableTableViewDelegate, SortableTableViewDataSource  {

    @IBOutlet weak var numbersTableView: SortableTableView!
    @IBOutlet weak var lettersTableView: SortableTableView!
    
    var sortableHandler:SortableTableViewHandler!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.numbersTableView.sortableDelegate = self
        self.numbersTableView.sortableDataSource = self
        
        self.lettersTableView.sortableDelegate = self
        self.lettersTableView.sortableDataSource = self
        
        self.sortableHandler = SortableTableViewHandler(view: self.view,
                                                        sortableTableViews: [
                                                            self.numbersTableView,
                                                            self.lettersTableView
                                                        ])
    }

SortableTableViewDataSource

必须处理当一项从一个列表移动到另一个列表时底层数据的转移。.

SortableTableViewDataSource 允许您通过提供两种 SortableTableViewDataSource 函数之一来在接收表或释放表中处理这种情况:

  1. function sortableTableView(将要释放的项目(

    )

    • 此函数在释放 SortableTableView 上调用
  2. function sortableTableView(将要接收的项目(

    )

    • 此函数在接收 TableView 上调用

如果对象移动到同一表中的新的 indexPath,那么在此函数中修改底层数据

function sortableTableView(将要放置的项目(

)

其他数据源函数

function sortableTableView(是否应接收项目(

) -> Bool

  • 返回 false 以取消移动

function sortableTableView(是否应释放项目(

)

  • 返回 false 以取消移动

function sortableTableView(是否可以捡起(

)

  • 返回 false 并且无法捡起项目。

function sortableTableView(项目已被捡起(

)

  • 捡起完成后在项目原始表中调用

function sortableTableView(项目移动已取消(

)

  • 在移动取消后在原始表中调用。

SortableTableViewDelegate

这些函数是在通常的 UITableViewDelegate 函数之外的

function sortableTableView(被拖动的项目进入TableView行(

) -> Bool

  • 当项拖动到 TableView 上时调用

function sortableTableView(被拖动的项目从TableView行退出(

) -> Bool

  • 当项拖动到 TableView 上时调用

注释

  1. 在调用 dequeueReusableCell(withIdentifier:)时不要指定for indexPath: -- 这会导致单元格的位置发生改变,提供特定的 IndexPath 会破坏内部一致性。
  2. 目前只支持表格的一个分区。