IOS学习 UITableView 索引 涉及数组排序

@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;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值