我应该在哪里添加我的子视图以使其位于 UITableViewController 中的表视图下?

Posted

技术标签:

【中文标题】我应该在哪里添加我的子视图以使其位于 UITableViewController 中的表视图下?【英文标题】:Where should I add my subview to have it UNDER my table view in a UITableViewController? 【发布时间】:2014-09-15 19:19:53 【问题描述】:

我正在使用 parse 的 PFQueryTableViewController,它几乎与 UITableViewController 完全相同,只是它在后台处理一些查询。

我的目标是在屏幕底部放置一个静态工具栏。我决定通过给tableView 一个较小的框架来做到这一点,并在tableView 下方创建和添加我的工具栏子视图,作为tableView 是其子视图的同一视图的子视图。

这是一张照片。我正在尝试将我的工具栏添加到屏幕底部的小空白处。该空白不随表格视图滚动:

我试过[self.view addSubview: toolbar],但是,这只是将它添加到tableView,结果,我的工具栏会随之滚动。我似乎找不到关于 UITableViewController 的视图层次结构的任何文档。任何人都知道我应该在哪里添加我的工具栏子视图?我还应该提到,所有这些都位于UINavigationController 中。

【问题讨论】:

Footerview 将是最好的地方 【参考方案1】:

PFQueryTableViewController(与所有UITableViewControllers 一样)有一个表视图作为其view

如果您想在视图控制器中拥有其他视图,请不要使用表格视图控制器,或者子类UINavigationController

或者,您可以设置视图控制器的toolbarItems 属性,导航控制器将负责制作和配置标准工具栏。

【讨论】:

【参考方案2】:

实现UITableView的viewFAorHeaderInSection委托方法:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 

    UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 90)];
    customView.backgroundColor = [UIColor blackColor];
    return customView;
 

和 heightForFooterInSection

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

return 80;

它应该可以解决您的问题。

【讨论】:

以上是关于我应该在哪里添加我的子视图以使其位于 UITableViewController 中的表视图下?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中?

如何添加视图,使其位于导航工具栏和标签栏之间

ConstraintLayout - 匹配另一个视图的约束,但添加边距以使其更大

在页面中居中我的引导表单

如何以编程方式设置子视图的框架以使其适合其父视图?

在哪里部署我的应用程序?