QQ列表的展开收起

@interface RootViewController : UIViewController{

BOOL Close[15]; //用于存放每一组的收起展开状态    YES 是收起  NO是展开

UITableView *_tableView;

}

@property(nonatomic, retain)NSArray *data;

- (void)viewDidLoad{  [super viewDidLoad];  //创建表视图  _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, 320, 460) style:UITableViewStylePlain];  //设置代理  _tableView.delegate = self;  _tableView.dataSource = self;  _tableView.sectionHeaderHeight = 44;    [self.view addSubview:_tableView];    //查找文件的路径  NSString *path = [[NSBundle mainBundle] pathForResource:@"font" ofType:@"plist"];  _data = [[NSArray alloc] initWithContentsOfFile:path];}/* _data数据存放的格式 [ [@"字体1",@"字体2",@"字体3",@"字体4",@"字体5"], [@"字体1",@"字体2",@"字体3"], [@"字体1",@"字体2"@"字体5"], [@"字体1",@"字体2",@"字体4",@"字体5"], .... ] */#pragma mark - UITableView dataSource//设置表视图的组的个数- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {  return _data.count;}//设置每一组cell的个数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  //取得对应组里面的元素  NSArray *arrary2D = _data[section];    BOOL isClose = Close[section];    if (isClose == NO) {    return arrary2D.count;  }    return 0;  }/* _data数据存放的格式 [ [@"字体1",@"字体2",@"字体3",@"字体4",@"字体5"], [@"字体1",@"字体2",@"字体3"], [@"字体1",@"字体2"@"字体5"], [@"字体1",@"字体2",@"字体4",@"字体5"], .... ] *///创建cell- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  static NSString *iden = @"cell110";    //从闲置池中去cell  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];    if (cell == nil) {    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:iden] autorelease];  }    NSArray *arrary2D = [_data objectAtIndex:indexPath.section];  NSString *name = [arrary2D objectAtIndex:indexPath.row];    //给cell添加数据  cell.textLabel.text = name;  cell.textLabel.font = [UIFont fontWithName:name size:17];    return cell;  }//设置组的头视图- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {  NSString *name = [NSString stringWithFormat:@"好友分组%d",section];    //创建按钮  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];  //设置按钮的背景图片  [button setBackgroundImage:[UIImage imageNamed:@"tableCell_common"] forState:UIControlStateNormal];  //设置按钮的标题  [button setTitle:name forState:UIControlStateNormal];  button.tag = section;  //设置按钮显示的标题颜色  [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];  [button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];  [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];    return button;  }//按钮的点击事件- (void)buttonAction:(UIButton *)button {  int section = button.tag;//将标示取反Close[section] = !Close[section];    //刷新单元格//[_tableView reloadData];    //刷新特定的组  NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:section];    [_tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,347评论 1 14
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 12,976评论 3 38
  • 前言 最近忙完项目比较闲,想写一篇博客来分享一些自学iOS的心得体会,希望对迷茫的你有所帮助。博主非科班出身,一些...
    GitHubPorter阅读 5,323评论 9 5
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,249评论 1 9
  • 能够动态设置端口的话,调试起来会比较方便,不需要因为默认端口被占用去改代码,还可以多开。代码如下,其实没啥难度,只...
    almon123阅读 11,580评论 1 0

友情链接更多精彩内容