ZHTableViewGroup
之前遇到過很多復(fù)雜的UITableView的結(jié)構(gòu),里面包含了很多復(fù)雜的cell,甚至一個Section包含很多種類的cell赊琳。通常在代理
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
返回不同的cell,甚至需要在在
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
寫很多判斷邏輯的跳轉(zhuǎn)
現(xiàn)在有了這個庫,做一些復(fù)雜的表格十分的方便,而且十分的簡潔糕伐。
怎么安裝
1.使用cocoapods進(jìn)行安裝
pod 'ZHTableViewGroup'
2.直接下載demo拖拽UITableViewDataSource
到工程里面
怎么使用
文件的結(jié)構(gòu)
在例子里面聲明一個變量
@property (nonatomic, strong) ZHTableViewDataSource *dataSource;
在UITableView的代理實(shí)現(xiàn)這些方法
#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.dataSource.sectionNumber;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
ZHTableViewGroup *group = [self.dataSource groupWithIndex:section];
return group.rowNumber;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ZHTableViewGroup *group = [self.dataSource groupWithIndex:indexPath.section];
UITableViewCell *cell = [group cellWithIndexPath:indexPath];
return cell;
}
#pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ZHTableViewGroup *group = [self.dataSource groupWithIndex:indexPath.section];
[group didSelectRowAtIndexPath:indexPath];
}
我們只用在之前初始化數(shù)據(jù)添加到dataSource
- (void)stepTableViewData {
ZHTableViewGroup *group = [[ZHTableViewGroup alloc]init];
ZHTableViewCell *cellOne = [[ZHTableViewCell alloc]initWithTableView:self.homeTableView range:NSMakeRange(0, 6) cellHeight:44 cellClass:[HomeCellStyleOne class] identifier:KHomeCellStyleOneIdentifier];
cellOne.configCellComplete = ^(UITableViewCell *cell, NSIndexPath *indexPath) {
HomeCellStyleOne *cellOne = (HomeCellStyleOne *)cell;
cellOne.textLabel.text = @"One Title";
cellOne.detailTextLabel.text = @"One Detail";
};
cellOne.didSelectRowComplete = ^(UITableViewCell *cell, NSIndexPath *indexPath) {
NSLog(@"cell->%@,indexPath->%@",cell,indexPath);
};
[group addTableViewCell:cellOne];
ZHTableViewCell *cellTwo = [[ZHTableViewCell alloc]initWithTableView:self.homeTableView range:NSMakeRange(6, 5) cellHeight:44 cellClass:[HomeCellStyleTwo class] identifier:KHomeCellStyleOneIdentifier];
cellTwo.configCellComplete = ^(UITableViewCell *cell, NSIndexPath *indexPath) {
HomeCellStyleOne *cellTwo = (HomeCellStyleOne *)cell;
cellTwo.textLabel.text = @"Two Title";
cellTwo.detailTextLabel.text = @"Two Detail";
};
cellTwo.didSelectRowComplete = ^(UITableViewCell *cell, NSIndexPath *indexPath) {
NSLog(@"cell->%@,indexPath->%@",cell,indexPath);
};
[group addTableViewCell:cellTwo];
[self.dataSource addTableViewGroup:group];
[self.homeTableView reloadData];
}
更多的文檔請查看Wiki