DTCollectionViewManager 11.0.0

DTCollectionViewManager 11.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新发布2022年10月
SPM支持 SPM

Denys Telezhkin 维护。



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

DTCollectionViewManager

特性

  • 强大的数据模型与单元格、头部和尾部之间的映射系统
  • 自动数据源和界面同步。
  • 灵活的 Memory/CoreData/Realm/diffable 数据源存储选项
  • 强大的编译时安全事件系统,涵盖所有 UICollectionView 代理方法
  • 从代码、XIB 或故事板创建的视图,自动注册和回收
  • 可与 UICollectionViewController 或拥有 UICollectionView 的 UIViewController 一起使用
  • 内置对 iOS 14 UICollectionView.CellRegistration 和内容配置的支持
  • DTTableViewManager 兼容的统一语法
  • 完整的文档
  • API 参考

需求

  • Xcode 12+
  • 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 'DTCollectionViewManager', '~> 11.0.0-beta.1'

快速开始

假设您有一个包含 Posts 实体的数组,想在 UICollectionView 中显示它们。使用 DTCollectionViewManager 快速显示,需要这样做

  1. 创建 UICollectionViewCell 子类,比如 PostCell,并采用 ModelTransfer 协议
class PostCell : UICollectionViewCell, ModelTransfer {
    func update(with model: Post) {
        // Fill your cell with actual data
    }
}
  1. 在您的视图控制器中
class PostsViewController: UICollectionViewController, DTCollectionViewManageable {

    override func viewDidLoad() {
        super.viewDidLoad()

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

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

确保您的 UICollectionView 媒介 outlet 与您的类连接(或使用 UICollectionViewController 子类)。如果有一个 PostCell.xib 文件,它将自动用于 PostCell 的 dequeuing。

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

当然,酷炫的功能并不止于此。这个框架支持所有数据源和委托方法作为闭包,条件映射以及更多!在下一节README中,选择您感兴趣的内容。

常见问题解答

启动包
高级

示例代码和文档

感谢

  • Alexey Belkevich 提供了 CellFactory 的初始实现。
  • Michael Fey 提供了有关正确完成 NSFetchedResultsController 更新的见解。
  • Nickolay Sheika 提供了宝贵的反馈,这有助于塑造 3.0 版本的发布以及库的未来方向。
  • Artem Antihevich 就 Swift 泛型和类型捕捉进行了有益的讨论。