设置行高有两种方式
// 方式一
self.tableView.rowHeight = 80;
// 方式二
// 计算“每一行”的行高 ——— UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return (indexPath.row % 2) ? 60 : 44;
}
分析:
代理方法的优先级比rowHeight优先级高 应用场景:cell的高度是动态的,例如:新浪微博
表格工作观察的小结
1> 要知道总共有多少数据
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
2> 计算“每一行”的行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
问题:在此方法执行时,cell被实例化了吗?
不会
问题:方法的作用是什么?
scrollView需要指定contentSize才能够滚动,如果没有实现方法,行高默认是44 需要知道每一行的高度,才能够准确的计算出contentSize 知道每一行的高度后,自然知道每一个屏幕应该显示多少行,表格明细方法的执行次数就知道了
3> 表格明细 调用屏幕显示所需要的行数,懒加载,只有要显示的表格行,才会被实例化!
结论:
tableView.rowHeight:效率高,适用于所有的表格行高度一致
代理方法指定行高:效率差,适合于每一行的行高不一样,能够让表格更加的灵活