UITableView的两个协议及常用协议方法

UITableView

  • UITableViewDataSource协议
    /** 与数据相关的协议*/
    1.返回分区数
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
            /** 有两个分区*/
             return  2;
}

2.返回每个分区的行数

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
            /** 每个分区有10行*/
             return 10;
}

3.返回每一行cell

/** 重点*/
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    
     /** cell*/
    cell.textLabel.text = @"liu";
    cell.textLabel.textColor = [UIColor colorWithRed:arc4random() % 256 / 255.0 green:arc4random() % 256 / 255.0 blue:arc4random() % 256 / 255.0 alpha:1];
    cell.imageView.image = [UIImage imageNamed:@"6.jpg"];
    
    cell.imageView.layer.cornerRadius = tableView.rowHeight / 2;
    
    cell.imageView.layer.masksToBounds = YES;
    
    cell.detailTextLabel.text = @"lanou";
    
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    
    return cell;

}

4.返回分区头标题

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    
    NSString *str = @"西八";
    return str;
    
}

5.返回分区尾标题

-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {   
    return @"footer";
   
}

6.侧边栏

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    
    return [self.addressBook getGroupNames];
    
}
  • UITableViewDelegate协议方法
    /** 控制视图行为的*/
    1.返回行高

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

NSLog(@"section: %ld, row: %ld", indexPath.section, indexPath.row);
/** 通过switch控制不同行有不同行高*/
switch (indexPath.row) {
    case 0:
        return 100;
        break;
        
    default:
        return 50;
        break;
}

}

2.返回分区头高度

  -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    
    return 30;
    
}

3.返回分区尾的高度

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    
    return 30;
    
}

4.cell的点击方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSLog(@"%@", indexPath);

}

你可能感兴趣的:(UITableView的两个协议及常用协议方法)