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 實(shí)現(xiàn)3D 浮動(dòng)效果動(dòng)畫(huà)
這篇文章主要介紹了IOS 實(shí)現(xiàn)3D 浮動(dòng)效果動(dòng)畫(huà)的相關(guān)資料,需要的朋友可以參考下2016-09-09
IOS開(kāi)發(fā) 支持https請(qǐng)求以及ssl證書(shū)配置詳解
這篇文章主要介紹了IOS開(kāi)發(fā) 支持https請(qǐng)求以及ssl證書(shū)配置詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
Xcode8以及iOS10適配等常見(jiàn)問(wèn)題匯總(整理篇)
隨著iOS 10的更新以及Xcdoe 8的更新出現(xiàn)了很多問(wèn)題,今天小編抽時(shí)間給大家整理下我遇到的坑特此分享到腳本之家平臺(tái),供大家參考2016-09-09
iOS開(kāi)發(fā)之統(tǒng)計(jì)Xcode工程的代碼行數(shù)
這篇文章主要給大家介紹了在iOS開(kāi)發(fā)中,如果想要統(tǒng)計(jì)Xcode工程的代碼行數(shù)該如何實(shí)現(xiàn),文章給出了詳細(xì)的方法和示例代碼,對(duì)大家的理解和學(xué)習(xí)很有幫助,本文中還分享了統(tǒng)計(jì)java文件和xml文件的代碼,有需要的朋友們下面來(lái)一起看看吧。2016-10-10
IOS MenuViewController實(shí)現(xiàn)彈出菜單效果
這篇文章主要介紹了IOS MenuViewController實(shí)現(xiàn)彈出菜單效果,實(shí)現(xiàn)一個(gè)從下移動(dòng)上來(lái)的彈出菜單,背景逐漸變深,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Flutter Widgets粘合劑CustomScrollView NestedScrollVie
這篇文章主要為大家介紹了Flutter Widgets粘合劑CustomScrollView NestedScrollView滾動(dòng)控件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
解決Flutter出現(xiàn)CocoaPods報(bào)錯(cuò)情況(Mac和IOS)
這篇文章主要為大家介紹了解決Flutter出現(xiàn)CocoaPods報(bào)錯(cuò)情況(Mac和IOS)的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

