表格控件UITableView

network | | 访问(70)
@interface ViewController () <UITableViewDataSource> //设置协议
@property (weak, nonatomic) IBOutlet UITableView *tableView;

tableview协议,如果指明遵循这个协议,以下三个函数是一定要在viewcontroller里实现的

(1)numberOfSectionsInTableView:告知视图,有多少个section需要加载到table里

(2)tableView:numberOfRowsInSection:告知controller每个section需要加载多少个单元或多少行

(3)tableView:cellForRowAtIndexPath:返回UITableViewCell的实例,用于构成table view.这个函数是一定要实现的。

#pragma mark - 数据源方法
// 如果没有实现,默认是1
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}

// 每个分组中的数据总数
// sction:分组的编号
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == 0) {
        // 第0个分组
        return 5;
    } else {
        return 18;
    }
}

// 告诉表格控件,每一行cell单元格的细节
// indexPath
//  @property(nonatomic,readonly) NSInteger section;    分组
//  @property(nonatomic,readonly) NSInteger row;        行
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 实例化TableViewCell时,使用initWithStyle方法来进行实例化
    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    
    cell.textLabel.text = [NSString stringWithFormat:@"黑马学员 %02d 期 - %04d", indexPath.section, indexPath.row];
    
    return cell;
}

// 设置每个分组的标题文字
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [NSString stringWithFormat:@"黑马 %02d 期", section];
}

// 设置每个分组的底部文字
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    if (section == 0) {
        return @"太牛叉了";
    } else {
        return @"牛叉闪闪亮";
    }
}