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<NSString *> *)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);
}