iOS中Cell的Section展開(kāi)和收起的示例代碼
整理文檔,搜刮出一個(gè)iOS中Cell的Section展開(kāi)和收起的示例代碼,稍微整理精簡(jiǎn)一下做下分享。
首先,先上圖,讓大家看看效果

相信大家對(duì)于TableViewd數(shù)據(jù)的設(shè)置都熟悉,這方面就不多說(shuō)的,重點(diǎn)的還是來(lái)看:
1.如何實(shí)現(xiàn)cell的Section的展開(kāi)和收起的效果
- (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當(dāng)前的數(shù)據(jù)
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];
}
當(dāng)用戶點(diǎn)擊到某一個(gè)cell時(shí)候,需要判斷cell是否是展開(kāi)狀態(tài),如果張開(kāi)或者收起就調(diào)用
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
讓cell的section能夠重新加載刷新;
2.如何添加cell的Section
2.1設(shè)置section的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *sectionDic = self.dataSource[indexPath.section];
NSArray *cellArray = sectionDic[@"sub"];
//cell當(dāng)前的數(shù)據(jù)
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;
}
}
上面的代碼是設(shè)置section的高度,主要是以cell的isshow作為標(biāo)記,讓section的能夠隨數(shù)據(jù)的改變而變動(dòng)
3.如果要在一個(gè)cell上再加一個(gè)cell,實(shí)現(xiàn)cell內(nèi)嵌cell,需要在哪里加?
答案:當(dāng)然是在cell的HeaderSection或者FooterSection上加上cell,這樣就能實(shí)現(xiàn)cell內(nèi)嵌cell。
好了,說(shuō)了那么多,估計(jì)大家還是喜歡看demo,以下是demo的鏈接:https://github.com/xiaojin1123/SectionOpenAndClose.git
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS創(chuàng)建對(duì)象的不同姿勢(shì)詳解
這篇文章主要介紹了iOS創(chuàng)建對(duì)象的不同姿勢(shì),文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02
iOS開(kāi)發(fā)之Objective-c的Runtime理解指南
這篇文章主要介紹了iOS開(kāi)發(fā)之Objective-c的Runtime理解指南的相關(guān)資料,需要的朋友可以參考下2022-08-08
iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法
下面小編就為大家分享一篇iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
ios實(shí)現(xiàn)簡(jiǎn)易隊(duì)列
這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)簡(jiǎn)易隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
iOS UICollectionView刷新時(shí)閃屏的解決方法
本篇文章主要介紹了iOS UICollectionView刷新時(shí)閃屏的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法
在iOS開(kāi)發(fā)過(guò)程中經(jīng)常需要與服務(wù)器進(jìn)行數(shù)據(jù)通訊,Json就是一種常用的高效簡(jiǎn)潔的數(shù)據(jù)格式,通過(guò)本文給大家介紹iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法,感興趣的朋友參考下2016-01-01
詳解 objective-c中interface與protocol的作用
這篇文章主要介紹了詳解 objective-c中interface與protocol的作用的相關(guān)資料,需要的朋友可以參考下2017-05-05

