测试测试通过 | ✗ |
语言编语言 | Obj-CObjective C |
许可协议 | MIT |
发布最新版本 | 2016年12月 |
由Zeyu Tao维护。
在“UIViewController 瘦身”这一热门话题中,UITableView 是主要目标。
HTTableViewDataSourceDelegate
将 view controller 中 table view 的 dataSource 接口及与 UI 无关的 delegate 接口(包括 cell 高度计算方法)进行了抽象。
导入头文件
#import "HTTableViewDataSourceDelegate.h"
#import "NSArray+DataSource.h" //数据列表在这里完成协议的遵守,参考下面对model参数的解释
#import "MyCellStringModel.h" //cell model类型
#import "MyTableViewCell.h" //cell类型,遵守协议HTTableViewCellModelProtocol
构造数据集合
- (id <HTTableViewDataSourceDataModelProtocol>)arrayCellModels
{
NSMutableArray * models = [NSMutableArray new];
for (NSString * arg in @[@"A", @"B", @"C", @"D", @"E", @"F"]) {
[models addObject:[MyCellStringModel modelWithTitle:arg]];
}
return models;
}
构造 dataSourceDelegate 实例
id <HTTableViewDataSourceDataModelProtocol> cellModels = [self arrayCellModels];//用户的数据列表
id <UITableViewDataSource, UITableViewDelegate> dataSource
= [HTTableViewDataSourceDelegate dataSourceWithModel:cellModels
cellTypeMap:@{@"MyCellStringModel" : @"MyTableViewCell"}// 数据类到cell类名的映射
tableViewDelegate:self
cellConfiguration:
^(UITableViewCell *cell, NSIndexPath *indexPath) {
if (indexPath.row % 2 == 0) {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
}];
使用 dataSourceDelegate
self.demoDataSource = dataSource;//持有 dataSource
_tableview.dataSource = dataSource;
_tableview.delegate = dataSource;
[_tableview reloadData];
该项目最低支持 iOS 7.0
和 Xcode 7.0
HTTableViewDataSourceDelegate 使用 MIT 许可协议,详情见 LICENSE 文件。