设置行高有两种方式

// 方式一
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:效率高,适用于所有的表格行高度一致

  • 代理方法指定行高:效率差,适合于每一行的行高不一样,能够让表格更加的灵活

results matching ""

    No results matching ""