UITableView,heighForRowAtIndex没有返回我想要的高度

时间:2014-03-13 03:12:41

标签: ios uitableview height

我实施了以下内容:

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

只有在收到json序列化数据时,才会正确显示高度。当它没有数据时,它会将高度显示为默认高度。什么是重写这种方法?

2 个答案:

答案 0 :(得分:1)

如果您希望每一行都具有相同的高度,请不要使用tableView:heightForRowAtIndexPath:方法。

相反,请在viewDidLoad

中设置表格视图行高一次
self.tableView.rowHeight = 75;

这适用于所有行,而不仅仅是带有数据的行。

答案 1 :(得分:0)

仅当numberOfRowsInSection返回值>时,才调用heightForRowAtIndexPath方法。在这种情况下,您看到的是默认的空表视图。

我认为在没有数据的情况下,你应该在viewDidLoad中用这行代码隐藏所有默认的空行:

tableView.tableFooterView = [UIView new];

显示并清空图像标签,让用户知道没有返回数据。例如:

- (void) requestData {
  // Your request data code
  // When request data complete, check and show that label
  self.labelNoData.hidden = (arrayData.count == 0);
}