ReactiveDataDisplayManager 7.4

ReactiveDataDisplayManager 7.4

由以下人员维护:Kravchenkov AlexanderNikita KorobeinikovSergei Korshunov



  • Alexander Kravchenkov

ReactiveDataDisplayManager

Build codebeat badge codecov

这是处理可滚动列表或集合的整体方法。

Logo

关于

此框架旨在加快开发类似 UITableView 或 UICollectionView 的可滚动集合的速度,并提供扩展集合功能的新方法。

重大更改

我们在 7.0.0 版本中进行了一次大规模的重构。如果您使用的是 6 版或更早的版本,请阅读我们的迁移指南

当前支持的功能

  • 无需自己实现代理和数据源即可填充单元格
  • 无需重新加载即可插入、替换或删除单元格
  • 在集合内展开或折叠单元格
  • 在集合内移动或拖放单元格
  • 自定义章节标题和索引标题

使用方法

配置标签简单列表的逐步示例。

准备单元格

您可以FROM xib或从代码来布局您的单元格。这无关紧要。只需扩展您的单元格到ConfigurableItem,当单元格被创建时填充子视图。

import ReactiveDataDisplayManager

final class LabelCell: UITableViewCell {

    // MARK: - IBOutlets

    @IBOutlet private weak var titleLabel: UILabel!

}

// MARK: - ConfigurableItem

extension LabelCell: ConfigurableItem {

    typealias Model = String

    func configure(with model: Model) {
        titleLabel.text = model
    }
}

准备集合

只是从集合中调用rddm

  • 为您的需求添加插件
  • 构建您的ReactiveDataDisplayManager
final class ExampleTableController: UIViewController {

    // MARK: - IBOutlets

    @IBOutlet private weak var tableView: UITableView!

    // MARK: - Private Properties

    private lazy var ddm = tableView.rddm.baseBuilder
        .add(plugin: .selectable())
        .build()

    // MARK: - UIViewController

    override func viewDidLoad() {
        super.viewDidLoad()
        fill()
    }

}

填充集合

将模型转换为生成器并调用 ddm.forceRefill()

private extension MainTableViewController {

    func fill() {

        let models = ["First", "Second", "Third"]

        for model in models {
            let generator = TitleTableViewCell.rddm.baseGenerator(with: model)

            generator.didSelectEvent += { [weak self] in
                // do some logic
            }

            // Add generator to adapter
            ddm.addCellGenerator(generator)
        }

        ddm.forceRefill()
    }

}

享受

如你所见,你不需要实现 UITableViewDelegateUITableViewDataSource。这些协议被隐藏在 ReactiveDataDisplayManager 中。你可以通过添加插件和替换生成器来扩展表格功能。

Feature

你可以在我们的 示例项目 或完整的 文档 中查看更多示例。

安装

只需像这样将 ReactiveDataDisplayManager 添加到你的 Podfile

pod 'ReactiveDataDisplayManager' ~> 7.3

变更日志

本项目的所有重大变更都将记录在此文件中 CHANGELOG.md

问题

对于问题,请直接在 主 ReactiveDataDisplayManager 仓库 中提交。

贡献

如果您想为此软件包做出贡献(比如改进文档、修复 bug 或添加酷炫的新功能),请首先审查我们的贡献指南,并发送您的 pull 请求。

我们始终欢迎您的 PR。

许可协议

MIT 许可协议