国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發之tableView cell的展開收回功能實現代碼

2019-10-21 18:41:54
字體:
來源:轉載
供稿:網友

一、實現方法

例如好友分組,分為好友和陌生人兩組,實現點擊好友和陌生人展開或收回該分組對應的cell的功能。

實現:可以分組對應tableView的section,點擊section展開和收回cell。

創建一個臨時數組selectedArr存儲需要展開的section。點擊section是判斷selectedArr是否包含該組,如果包含則移除,不包含則添加到selectedArr。

展示selectedArr包含組的cell。

二、代碼實現

#import "ZCellGroupController.h"@interface ZCellGroupController ()<UITableViewDelegate, UITableViewDataSource>@property (nonatomic, strong) UITableView *tableView;@property (nonatomic, strong) NSArray *titleArray;//分組@property (nonatomic, strong) NSArray *friendsArray;//每組對應內容@property (nonatomic, strong) NSMutableArray *selectedArr;//存儲需要展開的cell組@end@implementation ZCellGroupController-(void)viewDidLoad {  [super viewDidLoad];  self.selectedArr = [[NSMutableArray alloc]init];  [self addTableView];  [self addData];}- (void)addTableView{  UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kSCREENWIDTH, kScreenHeight) style:UITableViewStyleGrouped];  self.tableView = tableView;  tableView.delegate = self;  tableView.dataSource = self;  tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;  [self.view addSubview:_tableView];}- (void)addData{  self.titleArray = [NSArray arrayWithObjects:@"好友",@"陌生人", nil];  self.friendsArray = [NSArray arrayWithObjects:                       @[@"A",@"B",@"C",@"D",@"E",@"F"],                       @[@"陌生1",@"陌生2",@"陌生3",@"陌生4",@"陌生5",@"陌生6",@"陌生7",@"陌生8",@"陌生9",@"陌生10",@"陌生11",@"陌生12",@"陌生13",@"陌生14"],nil];}#pragma mark --tableViewDelegate- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{  return self.titleArray.count;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  NSString *sectionStr = [NSString stringWithFormat:@"%ld",(long)section];  NSInteger num ;  //如果selectedArr不包含section,該分組返回number為0;  if ([self.selectedArr containsObject:sectionStr]) {    NSArray *arrayData = self.friendsArray[section];        num = arrayData.count ;  }else{    num = 0;  }  return num;}- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{  return 40;}- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{  UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kSCREENWIDTH, 40)];  view.backgroundColor = [UIColor whiteColor];  UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 5,kSCREENWIDTH-20 , 30)];  titleLabel.text = self.titleArray[section];  [view addSubview:titleLabel];    //添加點擊事件  UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, kSCREENWIDTH, 40)];  btn.tag = 100+section;  [btn addTarget:self action:@selector(viewBtnClick:) forControlEvents:UIControlEventTouchUpInside];  [view addSubview:btn];  return view;}- (void)viewBtnClick:(UIButton *)btn{  NSString *string = [NSString stringWithFormat:@"%ld",btn.tag - 100];  if ([self.selectedArr containsObject:string]) {    [self.selectedArr removeObject:string];  }else{    [self.selectedArr addObject:string];  }  NSLog(@"selectedArr:%@",self.selectedArr);  [_tableView reloadData];}- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{  return 10;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    NSString *sectionStr = [NSString stringWithFormat:@"%ld",(long)indexPath.section];  static NSString *cellID = @"testCellID";  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];  if (!cell) {    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];    cell.selectionStyle = UITableViewCellSelectionStyleGray;  }    NSArray *arrayData = self.friendsArray[indexPath.section];    if ([self.selectedArr containsObject:sectionStr]) {    cell.textLabel.text = arrayData[indexPath.row];  }  return cell;}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{  return 45;}@end

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 视频| 抚宁县| 聂拉木县| 宿迁市| 桃源县| 巴塘县| 怀化市| 托克逊县| 昌图县| 南部县| 昌平区| 襄城县| 城口县| 阿合奇县| 禄劝| 正定县| 通州区| 嵩明县| 大渡口区| 高雄县| 融水| 姜堰市| 汕头市| 靖边县| 县级市| 大悟县| 扎鲁特旗| 旬邑县| 广宗县| 宜兰市| 讷河市| 海安县| 靖江市| 苗栗县| 三亚市| 五大连池市| 衡山县| 社会| 东乡县| 遵义县| 金坛市|