TableauxUI 0.0.2

TableauxUI 0.0.2

Ernest DeFoy 维护。



  • Ernest DeFoy

TableauxUI

CI Status Version License Platform

示例

要运行示例项目,请克隆存储库,然后从 Example 目录运行 pod install

要求

安装

TableauxUI 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod 'TableauxUI'

用法

只需向 Tableau 添加结构体即可构建 UITableView。

首先,创建一个单元格,并将适配器添加到您的模型中。

struct GreenModel {
    let name: String = "Green"
}

extension GreenModel: TableauDataAdapter {
    var identifier: String {
	return GreenTableauCell.reuseIdentifier
    }
}

class GreenTableauCell: TableauCell {
    func configure(data: Any?) {
    	self.backgroundColor = .green
    }
}

TableauDataAdapter 将一个唯一的标识符传递给您的 TableauxUIView 以便回收视图。在这里,我们通过在 UIView 上使用扩展来传递由 Tableau 生成的标识符

public protocol ReusableView {
    static var reuseIdentifier: String { get }
}

extension UIView: ReusableView {}

接下来,创建一个GreenViewAdapter,并给它一个tableau来绘制你的视图。

enum Tableaux: Int, CaseIterable {
    case GreenTableau
}

class GreenViewAdapter {
    let tableau: Tableau(numberReservedTableaux: Tableaux.allCases.count)
}
extension GreenViewAdapter {
    func buildGreenTableau(index: Tableau, reload: @escaping (() -> Void)) {
    	let paintAdapter = tableau.paintAdapter()
        let tenGreenModels = Array.init(repeating: GreenModel(), count: 10)
        
        paintAdapter.paint(sectionModel: tenGreenModels, at: index.rawValue)
		
        reloadBlock()
    }
}

连接到画图适配器以创建你的绘制。在这里,我们将10个Green模型附加到Tableau。

这样就是这样。最后,将你的tableauxUIView连接到GreenViewAdapter。

class GreenViewController: UIViewController {
    let viewAdapter: GreenViewAdapter
    let tableauxView: TableauxUIView
    let dataSource: DataSource
    
    init(viewAdapter: GreenViewAdapter) {
    	self.viewAdapter = viewAdapter
        self.tableauxView = TableauxUIView(frame: .zero, style: .plain)
	self.dataSource = DataSource(tableau: viewAdapter.tableau, tableauxUIView: tableauxView)
		
	super.init(nibName: nil, bundle: nil)
		
	self.tableauxView.registerCellTypes(types: [GreenTableauCell.self])
    }
    
    public override func viewDidLoad() {
	super.viewDidLoad()
        
	self.view = tableauxView
		
	greenViewAdapter.buildGreenTableau {
	    DispatchQueue.main.async {
		self.tableauxView.reloadData()
	    }
	}
    }
}

当然,您也可以自由地从UITableView和/或UITableViewCell中派生子类。

祝您享受!

作者

Ernest DeFoy,[email protected]

许可证

TableauUI遵循MIT许可证。有关更多信息,请参阅LICENSE文件。