如何在UITableView的底部添加子视图?

时间:2010-06-30 23:24:12

标签: iphone objective-c cocoa-touch uitableview uikit

我正在使用以下提供的EGOTableViewHeader类:

http://www.drobnik.com/touch/2009/12/how-to-make-a-pull-to-reload-tableview-just-like-tweetie-2/

我可以在UITableView的顶部显示我的视图:

refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, 320.0f, self.tableView.bounds.size.height)];
refreshHeaderView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:231.0/255.0 blue:237.0/255.0 alpha:1.0];
[self.tableView addSubview:refreshHeaderView];

如何找出Y-Coordinate在UITableView的最后一个单元格底部显示此视图?

2 个答案:

答案 0 :(得分:1)

你能更具体一点吗?是否有更多的细胞滚动到位?我猜你的tableview有比屏幕不动产更多的单元格,所以你希望你的视图在最后一个单元格向上滚动时到位吗?

编辑: 就个人而言,在表格视图中计算内容高度的想法太乱了,特别是因为您必须自己添加子视图,而不是让UITableView为您管理它。在我看来,有一个更优雅的解决方案:

创建一个额外的部分(不必有任何与之关联的行)。然后实现函数

tableView:viewForHeaderInSection:

返回您要在主表下添加为子视图的视图。这应该可以解决问题。

答案 1 :(得分:1)

您可以使用tableView获取self.tableView.contentSize.height最底部的位置。

所以你的代码变成了 refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, self.tableView.contentSize.height, 320.0f, self.tableView.bounds.size.height)];

获得位置后,只需将视图添加到tableView,就像使用上一个视图一样。