【问题标题】:How can I add a subview to the bottom of a UITableView?如何将子视图添加到 UITableView 的底部?
【发布时间】:2010-06-30 23:24:11
【问题描述】:

我正在使用从以下网站提供的 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 坐标以在 UITableView 的最后一个单元格的底部显示此视图?

【问题讨论】:

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


【解决方案1】:

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

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

获得位置后,只需像之前一样将视图添加到 tableView。

【讨论】:

    【解决方案2】:

    你能说得更具体一点吗?是否有更多的单元格滚动到位?我猜你的 tableview 有比屏幕房地产提供的更多的单元格,所以你希望你的视图在最后一个单元格向上滚动时出现吗?

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

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

    tableView:viewForHeaderInSection:
    

    返回您打算作为子视图添加到主表下的视图。这应该可以解决问题。

    【讨论】:

    • 这是正确的,我希望我的视图在最后一个单元格向上滚动时出现。
    • 添加了我的解决方案,如果您有任何问题/疑虑,请告诉我
    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2021-01-25
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多