DWTableViewHelper 1.1.8.1

DWTableViewHelper 1.1.8.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2021年12月

codewicky 维护。



 
依赖
DWKit/DWUtils/DWOperationCancelFlag>= 0
DWKit/DWUtils/DWTransaction>= 0
DWKit/DWUtils/DWForwardingTarget>= 0
 

DWTableViewHelper

描述

这是一个帮助你快速构建表格视图的类。

所有表格单元格都是由数据模型驱动的。

通过这种方式,你不必关心表格的原始代理。只需使用模型来控制单元格即可。

因此,您控制器中的表格视图代码可能会变得很简洁。

除此之外,我也考虑到有时你可能需要自己实现表格的一些代理,以自定义表格的性能,因此我提供了表格可能包含的所有原代理的映射。

我还提供了一些基本的快速 API 用于表格的常用操作,这样你可能只需要开启一个属性即可实现你想要做的很多事情。

我所做的一切就是为了更方便地构建表格视图,我正在一步一步改进这个工具类。

描述

这是一个可以帮你快速创建列表视图的工具类。

所有的cell都是以数据模型驱动的。

这样的话,你将不再关心TableView原始的代理,只需使用模型来控制cell即可。

因此,你控制器中tableView的代码将会变得更简洁~

此外,考虑到有时为了定制一些TableView的行为,你可能需要自己实现TableView的一些代理,所以我同样提供了TableView可能包括的所有代理的映射。

并且我还提供了一些快捷的常用API,这样,你可能只需要开启一个属性即可做到你想要做的很多事情。

我所做的一切都是为了更便捷地布置一个列表视图,我在一点点的改进这个工具类。

功能

  • 简化您的 ViewController。

  • 提供所有默认实现的方法:Delegate/DataSource/Prefetch。如果您没有想要定制的部分,则不需要实现它们。

  • 提供cellShowAnimation Delegate。仅用它来自定义每个cell的展示动画。

  • 自动处理无数据占位图。如果Helper的数据源为空,它将显示“无数据视图”。

  • 简化选择操作。

  • 自动计算行高并缓存。

功能

  • 解耦。

  • 为UITableView的delegate/dataSource/prefetch提供所有代理的默认实现。如果没有特殊定制需求,您不需要实现这些代理。

  • 补充cell出现动画。您可以使用它来定制每个cell的展现动画。

  • 自动处理占位图。当数据源为空时自动展示无数据的占位图。

  • 简化TableView列表的选择和多选操作。

  • 非固定行高cell将自动计算行高并缓存。

使用方法

首先,将其拖入您的项目中或使用cocoapods。

pod 'DWTableViewHelper'

要使用DWTableViewHelper,您需要遵循以下步骤:

  • 您的cell必须是DWTableViewHelperCell的子类。

  • 您使用的模型必须是DWTableViewHelperModel的子类。

您还需要初始化Helper对象,例如,与tableView一起初始化。

-(UITableView *)tabV {
    if (!_tabV) {
        _tabV = [[UITableView alloc] initWithFrame:self.view.bounds style:(UITableViewStyleGrouped)
        ];
        self.helper = [[DWTableViewHelper alloc] initWithTabV:_tabV dataSource:self.dataArr];
    }
    return _tabV;
}

我已经做了很多工作来防止在发布模式下崩溃,但这不是您故意不设置属性的原因。

因此,您最好在Helper或Model中至少设置一次cellClassStr、cellID。

并正确使用MultiSection模式,以区分二维数组还是一维数组。

其他一些使用方法您可以自己尝试。

我的注释涵盖了所有细节。

如何使用

首先,您应该将所需文件拖入项目中,或者您也可以使用Cocoapods来集成它。

pod 'DWTableViewHelper'

当使用DWTableViewHelper时,您应该遵循以下要点:

  • 您使用的cell应该是DWTableViewHelperCell的子类。

  • 您使用的模型应该是DWTableViewHelperModel的子类

并且记得在初始化时同时初始化Helper类。例如:

-(UITableView *)tabV {
    if (!_tabV) {
        _tabV = [[UITableView alloc] initWithFrame:self.view.bounds style:(UITableViewStyleGrouped)
        ];
        self.helper = [[DWTableViewHelper alloc] initWithTabV:_tabV dataSource:self.dataArr];
    }
    return _tabV;
}

我已经做了很多工作来防止发布模式下崩溃,但这并不是您故意出错的原因。

因此,您最好在Helper或Model中至少设置一次cellClassStr、cellID。

同时正确使用MultiSection属性,以区分二维数组还是一维数组。

一些其他的使用方法相信您从属性名就能看出,您也可以自己尝试一下。

我的注释还是很全面的。

联系我们

您可以通过访问我的GitHub或发送电子邮件至[email protected]来向我说一些建议或报告bug,我将不胜感激。

如果喜欢,请给我一个star吧。

联系作者

您也可以通过在我的GitHub上给我留言或者发送电子邮件[email protected],向我提出一些建议或指出bug,我将不胜感激。

如果你喜欢这个小工具,别忘了给我一个star哦,爱你~