@implementation HomeViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSString *path = [[NSBundle mainBundle]pathForResource:@"listData" ofType:@"plist"];
_dataDic= [NSDictionary dictionaryWithContentsOfFile:path];
_keyArray =[NSArray arrayWithArray:[_dataDic allKeys]];
//数组内容排序
_keyArray = [_keyArray sortedArrayUsingSelector:@selector(compare:)];
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, VIEW_WIDTH, VIEW_HEIGHT-20) style:UITableViewStylePlain];
//实现数据源方法
_tableView.dataSource = self;
_tableView.delegate = self;
[self.view addSubview:_tableView];
}
#pragma mark - UITableView DataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return _keyArray.count;
}
//section中包含row的数量
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSArray *data = [_dataDic objectForKey:[_keyArray objectAtIndex:section]];
return data.count;
}
//创建单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//定义一个静态标识符
static NSString *cellIndentifier = @"cell";
//检查是否有闲置单元格,重新赋值
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIndentifier];
//创建单元格
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIndentifier];
}
//给cell赋值
NSArray *data = [_dataDic objectForKey:[_keyArray objectAtIndex:indexPath.section]];
cell.textLabel.text = [data objectAtIndex:indexPath.row];
cell.textLabel.textColor = [UIColor redColor];
cell.textLabel.font = [UIFont systemFontOfSize:14];
return cell;
}
- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return _keyArray[section];
}
#pragma mark - UITableView Delegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 60;
}
//返回索引的内容
- (nullable NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView{
return _keyArray;
}
//选中时跳传表视图
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
NSLog(@"tableView sectionForSectionIndexTitle %@,Index:%d",title,index);
return index;
}