DTTableViewManager 11.0.1

DTTableViewManager 11.0.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期最后发布日期Jul 2024
SPM支持 SPM

Denys Telezhkin 维护。



CI codecov.io CocoaPod platform CocoaPod version Swift Package Manager compatible Packagist

DTTableViewManager

特性

  • 数据模型和单元格、头部和尾部之间的强大映射系统
  • 自动数据源和界面同步。
  • 灵活的 Memory/CoreData/Realm/diffable 数据源存储选项
  • 强大的编译时安全事件系统,涵盖了所有的 UITableView delegate 方法
  • 从代码、XIB 或 storyboard 创建的视图,自动注册和回收
  • 可用于 UITableViewController 或具有 UITableView 的 UIViewController
  • DTCollectionViewManager 兼容的统一语法
  • 支持 iOS 13+ / tvOS 13+ / macCatalyst 13+ 的 SwiftUI 支持背景单元格
  • 完整的文档
  • API 参考

要求

  • Xcode 13+
  • iOS 11.0+ / tvOS 11.0+ / macCatalyst 13.0+
  • Swift 5.3+

如果您需要 Xcode 11 支持或 Swift 4...Swift 5.2,或 iOS 8...iOS 10 的支持,您可以使用 7.x 版本。

安装

Swift 包管理器

将包添加到 Xcode 项目的设置中 -> Swift 包

CocoaPods

pod 'DTTableViewManager', '~> 11.0.0-beta.1'

快速入门

假设你有一个包含多个 Post 的数组,你想在 UITableView 中显示它们。要快速使用 DTTableViewManager 显示它们,你需要做以下事情

  1. 创建 UITableViewCell 的子类,比如 PostCell,并实现 ModelTransfer 协议
class PostCell : UITableViewCell, ModelTransfer {
    func update(with model: Post) {
        // Fill your cell with actual data
    }
}
  1. 在你的视图控制器中
class PostsViewController: UITableViewController, DTTableViewManageable {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Register PostCell to be used with this controller's table view
        manager.register(PostCell.self)

        // Populate datasource
        manager.memoryStorage.setItems(posts)
    }
}    

确保你的 UITableView 出口已连接到你的类(或使用 UITableViewController 子类)。如果你有一个 PostCell.xib 文件,它将自动用于 PostCell 的 dequeuing。

  1. 就这样!就这么简单!

当然,酷炫的功能不仅限于此,框架支持所有数据源和代理方法作为闭包,条件映射等等!在下一个 readme 部分的下一节中选择你对什么感兴趣。

燃烧的问题

入门包
高级

示例代码和文档

感谢

  • Alexey Belkevich 对于提供CellFactory的初始实现。
  • Michael Fey 对于对NSFetchedResultsController的更新提供见解。
  • Nickolay Sheika 对于提供宝贵的反馈,帮助塑造3.0版本发布和库的未来方向。
  • Artem Antihevich 对于关于Swift泛型和类型捕获的精彩讨论。