//
// ViewController.m
// 仿QQ分组列表
//
// Created by lanqs on 15/1/26.
// Copyright (c) 2015年 Tanqihong. All rights reserved.
//
#import "ViewController.h"
/*网上的那些代码,太麻烦,也有点老了,自己写了一个,以后有遗忘可以回来看*/
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,strong)UITableView *tableView; //就是一个UItableView
@property(nonatomic,strong)NSMutableArray *dataSource;//存数据的,测试,没有用
@property(nonatomic,assign)NSInteger index; //返回的标题栏下标
@property(nonatomic,assign)BOOL sectionNotShow; //标题栏没有打开
@property(nonatomic,assign)NSInteger buttonPressedTag;//用来等于button的tag值的属性
- (void)initDataSource;
- (void)initUserInterface;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initDataSource];
[self initUserInterface];
}
- (void)initDataSource {
_dataSource = [[NSMutableArray alloc]init];
_index = -1; //初始化为 -1 ,不然会显示第一行,影响用户体验
_sectionNotShow = YES; //初始化为真
}
- (void)initUserInterface {
self.view.backgroundColor = [UIColor whiteColor];
_tableView = [[UITableView alloc]initWithFrame:self.view.bounds];
_tableView.dataSource = self;
_tableView.delegate = self;
[self.view addSubview:_tableView];
}
#pragma mark - <UITableViewDataSource>
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 5;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"-_-||";
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//显示的组的下标等于点击button的tag值减去100后的下标
if (section == _index) {
return 5;
}else {
return 0;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellID = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
cell.textLabel.text = @"cell";
return cell;
}
#pragma mark - <UITableViewDelegate>
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 100, 30);
button.tag = 100 + section;
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
button.layer.borderWidth = 1;
button.backgroundColor = [UIColor redColor];
return button;
}
#pragma mark - buttonPressed
- (void)buttonPressed:(UIButton *)sender {
_sectionNotShow = !_sectionNotShow; //显示(关闭)组
self.index = sender.tag - 100; //将下标置为点击的下标
if (self.buttonPressedTag != sender.tag - 100) { //上次点击和这个点击不是同一个button
self.buttonPressedTag = sender.tag - 100; //点击等于这次点击的button
_sectionNotShow = NO; //显示组
}else { //上次点击和这次点击相同
if (_sectionNotShow) { //如果不显示组
self.index = -1; //执行不显示组,将下标置为-1
}else { //如果显示组
self.index = sender.tag - 100; //执行限制组,将下标置为点击的下标
}
}
[_tableView reloadData]; //刷新UITableView
}
@end
Demo连接:http://download.csdn.net/detail/u011032334/8398921
转载自原文链接, 如需删除请联系管理员。
原文链接:仿QQ分组列表(UITableView),转载请注明来源!