使用不同类型iphone的自定义单元格计算表格的contentSize.height

时间:2010-07-12 19:21:54

标签: iphone uitableview

在我的应用程序中,tableview具有不同高度的不同类型的自定义单元格。我想在这个tableView下面放一个视图,为此我需要计算表contentView的高度,我该怎么做呢?

早些时候我曾经这样做过:( noOfRows * cell_height),但那是静态高度。

提前完成。

7 个答案:

答案 0 :(得分:20)

UITableView是UIScrollView的子类,因此您可以在tableview上使用实例方法contentSize:

yourtableView.contentSize.height

应该为您提供tableview内容视图的高度

答案 1 :(得分:11)

这是一个老问题,但今天我用这个解决了我的问题

Defines Module

答案 2 :(得分:4)

我在viewDidLayoutSubviews()中有内容视图控制器的calc高度。为我工作(表视图自动单元尺寸);

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews();
    let height = table.contentSize.height+table.contentInset.bottom+table.contentInset.top
    preferredContentSize = CGSize(width: 305, height: height);
}

答案 3 :(得分:1)

该部分的页眉和页脚未考虑在表格的高度,请考虑

CGSize sz = self.table.contentSize;
sz.height += self.table.contentInset.bottom +
             self.table.contentInset.top + 
             self.table.numberOfSections * self.table.sectionHeaderHeight;

答案 4 :(得分:0)

我能想到的最简单的方法是将您的视图设置为表tableFooterView

答案 5 :(得分:0)

我认为你要找的是self.view.bounds.size.height

结帐Oliver Drobnik's detailed post on creating a pull-to-reload table view。在他的情况下,它更容易,因为视图位于顶部,因此他检查负内容偏移。

如果您想在底部,可以查看scrollView.contentOffset.y > (self.view.bounds.size.height + pullToReloadViewHeight)

答案 6 :(得分:-3)

如果您已经实现了自己的自定义单元格,那么您可能已经在表委托中实现了此功能:

- (CGFloat)tableView:(UITableView *)tableView
           heightForRowAtIndexPath:(NSIndexPath *)indexPath

只需遍历行,为每个行调用此函数,并总结结果。