为什么-tableView:heightForRowAtIndexPath:是委托方法而不是数据源方法?

时间:2015-12-10 03:52:47

标签: ios objective-c uitableview

我发现这个方法是一个UITableView委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
  return 20;
}

我真的很困惑,为什么它不是数据源方法?

2 个答案:

答案 0 :(得分:1)

这个答案很好地概述了UITableViewDataSourceUITableViewDelegate方法之间的粗略分割:Difference between UITableViewDelegate and UITableViewDatasource

在这种情况下,heightForRowAtIndexPath与UITableView的布局有关,而不是与单个单元格中的内容有关,因此它与Delegate方法组合在一起(尽管单元格的内容和高度通常非常多)相关的)

答案 1 :(得分:0)

-tableView heightForRowAtIndexPath方法定义表视图单元的结构。它定义行高。它不在单元格中设置任何值。提供表格结构视图的方法保存在UITableViewDelegate方法中。