表格UITableView 右侧索引列表

network | | 访问(58)
// 每组的标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"读取数据里的,每个组的标题";
}

// 显示单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   
    // 可重用标示符
    static NSString *ID = @"Cell";
    
    // 让表格缓冲区查找可重用cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    
    // 如果没有找到可重用cell
    if (cell == nil) {
        // 实例化cell
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    
    // 此区域 设置cell内容
    // 根据 indexPath.section 分组编号 读取对应的 分组里的indexPath.row 行数据
    cell.imageView.image = [UIImage imageNamed:@"图片名称"];
    cell.textLabel.text = @"名称";
    
    return cell;
}

// 右侧索引列表
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    // 索引数组中的"内容",跟分组无关
    // 索引数组中的下标,对应的是分组的下标
    //    return @[@"哇哈哈", @"hello", @"哇哈哈", @"hello", @"哇哈哈", @"hello", @"哇哈哈", @"hello"];
    
    // 返回self.carGroup中title的数组
    // NSMutableArray *arrayM = [NSMutableArray array];
    // for (CarGroup *group in self.carGroups) {
    //   [arrayM addObject:group.title];
    // }
    // return arrayM;
    
    // KVC是cocoa的大招
    // 用来间接获取或者修改对象属性的方式
    // 使用KVC在获取数值时,如果指定对象不包含keyPath的"键名",会自动进入对象的内部查找
    // 如果取值的对象是一个数组,同样返回一个数组
    
    // NSArray *array = [self.carGroups valueForKeyPath:@"cars.name"];
    // NSLog(@"%@", array);
    
    return [self.carGroups valueForKeyPath:@"title"]; // return @[@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H"]; 每组标题的数组
}