向 UITableViewController 添加顶部/底部视图?

Posted

技术标签:

【中文标题】向 UITableViewController 添加顶部/底部视图?【英文标题】:Add top/bottom views to UITableViewController? 【发布时间】:2014-03-18 15:29:01 【问题描述】:

在我的故事板中,我有 UITableViewController,它有自定义类。 如何在表格视图的顶部和底部添加 UIView 对象?

我是否必须在 UIView 中创建 UITableView 和两个所需的视图,然后手动初始化我的控制器、设置 tableView 还是有更好的方法?

【问题讨论】:

您想将视图添加到第一个/最后一个部分的页眉/页脚吗?那么你可以使用UITableViewDelegate的方法tableView:viewForHeaderInSection:tableView:viewForFooterInSection: 取决于您是否希望视图随视图滚动 我希望视图是静态的,而不是滚动和模糊的表格项目。 【参考方案1】:

如果您想使用 UITableViewController 来管理单元格和静态布局,最好的办法是在情节提要中使用容器视图。这将允许您围绕表格布局主视图内容,并且仍然保留一个单独的 UITableViewController 维护表格本身。设置正确的自动布局约束(真的很简单,只需将容器视图锚定到页眉和页脚视图)

【讨论】:

是的,容器视图在这种情况下真的很有用。【参考方案2】:

是的,在 UITableViewConroller 中是可能的:

    let bottomView = UIView()
    bottomView.backgroundColor = .red // or your color
    bottomView.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height - 78, width: tableView.frame.size.width, height: 78) // 78 or your size of view
    navigationController?.view.addSubview(bottomView)
    tableView.tableFooterView = UIView()

【讨论】:

但是如果你这样做,表格视图不会滚动到新视图后面吗?你如何让它尊重新视图的空间?【参考方案3】:

这样的东西应该适合你:

// Your frame/view will vary
UIView *subview = [[UIView alloc]initWithFrame:CGRectMake(0, 64, 320, 44)];
subview.backgroundColor = [UIColor redColor];

[self.navigationController.view addSubview:subview];

【讨论】:

你说你希望它是静态的,而不是随着表格视图滚动 确切地说,它也不应该掩盖表格。我在评论中提到过。 只需更改表格视图的框架,然后从子视图的底部开始

以上是关于向 UITableViewController 添加顶部/底部视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 6 中向分组样式 UITableViewController 添加背景图像?

如何从 UIViewController 传递变量来委托 UITableViewController

我想向子表单添加一条新记录,但它总是向主表单添加一条新记录

向 DataFrame 添加一列,其值为 1,其中预测大于自定义阈值

向熊猫数据框添加一列

如何向现有代码添加分页?