iOS中Cell的开展和收起

作者 : 开心源码 本文共1780个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共156人阅读

首先,先上图,让大家看看效果

Simulator Screen Shot 2017年5月22日 下午1.43.37.png

相信大家对于TableViewd数据的设置都熟习,这方面就不多说的,重点的还是来看:

1.如何实现cell的开展和收起的效果

- (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的row

2.1设置好对使用能否开展row的高度

- (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;    }    }
2.2 返回对应的section的row
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    BOOL sectionStates = [self.sectionOpen[section] boolValue];        if(sectionStates)    {        //数据决定显示多少行cell        NSDictionary *sectionDict = self.dataSource[section];        //section决定cell的数据        NSArray *cellArray = sectionDict[@"sub"];        return cellArray.count;            }    else    {        //section是收起的时候        return 0;    }}
好了,说了那么多,预计大家还是喜欢看demo,以下是demo的链接: xiaojin1123/SectionOpenAndClose.git
欢迎大家提出自己看法!

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » iOS中Cell的开展和收起

发表回复