IOS单元部分的扩展和折叠示例代码
来源:爱站网时间:2020-10-22编辑:网友分享
对于很多新手来说,要实现程序中的任何一个功能,可能都要小心翼翼,生怕这样的操作会给后期的开发带来困难,成为团队的累赘,本文是爱站技术频道小编为大家带来的IOS单元部分的扩展和折叠示例代码。
对于很多新手来说,要实现程序中的任何一个功能,可能都要小心翼翼,生怕这样的操作会给后期的开发带来困难,成为团队的累赘,本文是爱站技术频道小编为大家带来的IOS单元部分的扩展和折叠示例代码。
首先,先上图,让大家看看效果
相信大家对于TableViewd数据的设置都熟悉,这方面就不多说的,重点的还是来看:
1.如何实现cell的Section的展开和收起的效果
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.tableView deselectRowAtIndexPath:indexPath animated:NO]; currentRow = indexPath.row; NSDictionary *sectionDic = self.dataSource[indexPath.section]; NSArray *cellArray = sectionDic[@"sub"]; //cell当前的数据 NSDictionary *cellData = cellArray[indexPath.row]; NSString *key = [NSString stringWithFormat:@"%@", cellData[@"chapterID"]]; CellModel *chapterModel = [self.cellOpen valueForKey:key]; chapterModel.isShow = !chapterModel.isShow; [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; }
当用户点击到某一个cell时候,需要判断cell是否是展开状态,如果张开或者收起就调用
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
让cell的section能够重新加载刷新;
2.如何添加cell的Section
2.1设置section的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *sectionDic = self.dataSource[indexPath.section]; NSArray *cellArray = sectionDic[@"sub"]; //cell当前的数据 NSDictionary *cellData = cellArray[indexPath.row]; NSString *key = [NSString stringWithFormat:@"%@", cellData[@"chapterID"]]; CellModel *model = [self.cellOpen valueForKey:key]; if (model.isShow) { return (model.pois.count+1)*60; } else { return 60; } }
上面的代码是设置section的高度,主要是以cell的isshow作为标记,让section的能够随数据的改变而变动
3.如果要在一个cell上再加一个cell,实现cell内嵌cell,需要在哪里加?
答案:当然是在cell的HeaderSection或者FooterSection上加上cell,这样就能实现cell内嵌cell。
上述是爱站技术频道小编分享的IOS单元部分的扩展和折叠示例代码,相信很多人都能接受到小编的介绍吧,让我们一起学习一起往前冲吧!
上一篇:IOS设置状态栏的背景色方法