iPhone + UITableView +行高

pra*_*tik 22 iphone height row uitableview

我正在UITableView使用以下代码设置我的行高

[tableView setRowHeight: 100.00];
Run Code Online (Sandbox Code Playgroud)

我使用单行作为分隔符UITableView.

尽管设置上面的高度,行的高度不会改变.

Mor*_*ion 65

你应该实施

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

委托方法.并在那里返回100.0.

  • 如果所有单元格具有相同的行高,则设置rowHeight比使用此委托方法更有效. (12认同)
  • 小心.Pratik没有说他想要每排高度.对于很多行,heightForRowAtIndexPath可能很昂贵. (10认同)
  • 这是正确但昂贵的答案:有一件事我不明白.为什么苹果公司坚持要求RowHeight?为什么不从(UITableViewCell*)tableView :( UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath询问行高并从中获取高度? (7认同)

jok*_*edk 23

heightForRowAtIndexPath如果所有行都具有相似的高度,则应避免使用该rowHeight属性.根据文件:

使用tableView:heightForRowAtIndexPath:而不是rowHeight会对性能产生影响.每次显示表视图时,它会在其每个行的委托上调用tableView:heightForRowAtIndexPath:这会导致具有大量行(大约1000或更多)的表视图出现严重的性能问题.

在UITableViewController子类中,它可以在例如viewDidAppear方法(UITableViewController具有对tableView的引用)中完成:

self.tableView.rowHeight = 79.f;
Run Code Online (Sandbox Code Playgroud)


emp*_*emp 7

行高在首次显示时会烘焙到单元格中.

在设置数据源之前是否设置了UITableView#rowHeight?
如果没有,请这样做.
如果由于某种原因你不能,你的另一个选择是在设置行高后调用UITableView#reloadData.