UITableView分组,该例题分为5个组,每一组有5行,每行内容为当前组下标和行下标,有头标题(HAHA),无尾标题。
显示效果为:
代码如下:
#import "ViewController.h"
//遵守协议
@interface
ViewController () <UITableViewDelegate,UITableViewDataSource>
//UITableView
@property (nonatomic,weak)UITableView * tableView;
//分组头数据
@property (nonatomic,strong)
NSMutableArray * sectionArray;
//strong ---数据类型
//weak ---控件之类的
@end
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
//加载数据
[self_loadData];
UITableView * table=[[UITableViewalloc]initWithFrame:CGRectMake(0,20,
self.view.frame.size.width,self.view.frame.size.height-20)style:UITableViewStyleGrouped];
table.delegate=self;
table.dataSource=self;
self.tableView=table;
table.sectionFooterHeight=0; //如果有代理的话,此行没有效果,以代理为先
//table.sectionHeaderHeight=100;
[self.viewaddSubview:table];
}
#pragma mark - 加载数据
- (void) _loadData
{
NSArray * array=@[@"分组1",@"分组2",@"分组3",@"分组4",@"分组5"];
self.sectionArray=[NSMutableArrayarrayWithArray:array];
}
#pragma mark - UITableViewDatasource
//返回行数
- (NSInteger ) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//return 3; //在该分组中有3行
//return (section+1)*2; //下标为0的分组有2行
//下标为1的分组有4行
//下标为2的分组有6行
//下标为3的分组有8行
returnself.sectionArray.count;
}
//返回cell
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath
{
static
NSString * identy=@"table";
UITableViewCell * cell=[tableViewdequeueReusableCellWithIdentifier:identy];
if (!cell)
{
cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identy];
}
cell.textLabel.text = [NSStringstringWithFormat:@"%li
%li",indexPath.section,indexPath.row]; //打印分组和行数
return cell;
}
#pragma mark - 返回分组数量
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
returnself.sectionArray.count;
//分组数组长度
//return 4; //分组有4组
}
#pragma mark - UITableViewDelegate
//设置分组的头标题
- (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return@"haha";
}
//设置分组的尾标题
//- (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
//{
// return @"hello world";
//}
#pragma mark - 自定义头部
//- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
//{
// UIView * view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];
// view.backgroundColor=[UIColor redColor];
// return view;
//}
#pragma mark - 自定义尾部
//- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
//{
// UIView * view=[[UIView alloc]init];
// view.backgroundColor=[UIColor blueColor];
// return view;
//}
#pragma mark - 设置头部的高度
- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section
{
return
50;
}
#pragma mark - 设置尾部的高度
//- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForFooterInSection:(NSInteger)section
//{
// return 30;
//}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
}
@end