#import "ViewController.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>{
NSMutableArray *_allArray;//創建一個數據源數組
NSMutableDictionary *dic;//創建一個字典進行判斷收縮還是展開
}
@property (nonatomic,strong)UITableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
dic = [NSMutableDictionary dictionary];
_allArray = [@[@[@"12",@"32",@"12",@"12",@"12",@"32"],@[@"12",@"12",@"12",@"32",@"12",@"12",@"12",@"32",@"12",@"12",@"12",@"32"],@[@"12",@"12",@"32"]]mutableCopy];
[self.view addSubview:self.tableView];
}
//懶加載
- (UITableView *)tableView{
if (!_tableView) {
_tableView = [[UITableViewalloc]initWithFrame:CGRectMake(0, 64, 375, 667 - 64)style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
}
return _tableView;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView{
return _allArray.count;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 30;
}
//
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [UIView new];
view.backgroundColor = [UIColor redColor];
//創建一個手勢進行點擊,這里可以換成button
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]initWithTarget:self action:@selector(action_tap:)];
view.tag = 300 + section;
[view addGestureRecognizer:tap];
return view;
}
- (void)action_tap:(UIGestureRecognizer *)tap{
NSString *str = [NSStringstringWithFormat:@"%ld",tap.view.tag - 300];
if ([dic[str] integerValue] == 0) {//如果是0,就把1賦給字典,打開cell
[dic setObject:@"1" forKey:str];
}else{//反之關閉cell
[dic setObject:@"0" forKey:str];
}
// [self.tableView reloadData];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:[str integerValue]]withRowAnimation:UITableViewRowAnimationFade];//有動畫的刷新
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSString *string = [NSStringstringWithFormat:@"%ld",section];
if ([dic[string] integerValue] == 1 ) { //打開cell返回數組的count
NSArray *array = [NSArrayarrayWithArray:_allArray[section]];
return array.count;
}else{
return 0;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 35;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleValue1reuseIdentifier:@"cell"];
}
cell.backgroundColor = [UIColor orangeColor];
cell.textLabel.text = _allArray[indexPath.section][indexPath.row];
return cell;
}
@end
iOS tableview cell 的展開收縮
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 一、實現方法 例如好友分組,分為好友和陌生人兩組,實現點擊好友和陌生人展開或收回該分組對應的cell的功能。實現:...
- 思路其實很簡單。一個UITableView就能簡單做到了。就像你說的使用-(void)tableView:(UIT...
- 看到很多小伙伴在問如何實現一個可展開收縮的UITableView,網上有許許多多的Demo,兩級的,三級的,很多級...
- ![Uploading Extand tableView_547722.gif . . .]寫了好多的tablev...