使用 Interface Builder 将 UITableView 放在导航栏下方

Posted

技术标签:

【中文标题】使用 Interface Builder 将 UITableView 放在导航栏下方【英文标题】:Place UITableView below Navigation bar with Interface Builder 【发布时间】:2015-07-10 16:31:02 【问题描述】:

我正在开发具有以下场景的情节提要:导航控制器具有 UITableViewController(父亲)。在父亲中有一个单元格,它执行一个打开新 UIViewController 的 segue:Son。在 Son 内部,我拖了一个 UITableView 和一个导航项,因为我想在导航栏中有一个刷新按钮。

但是,当我运行该项目时,表格不适合导航栏下方。此外,它似乎是视图页脚中的一个空白区域。我应该在界面构建器中设置或修改什么属性,以使表格在导航栏之后开始并填充整个视图?

【问题讨论】:

【参考方案1】:

您无需手动将导航拖到您的“儿子”控制器。只需将 segue 的类型指定为“show”,您的“子”控制器应该从父​​控制器继承导航栏。

至于刷新按钮,您可以在代码中创建一个并将其添加到导航栏,如:

self.refreshButton=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(resetButtonTapped:)];

self.navigationItem.rightBarButtonItem=self.refreshButton

【讨论】:

这并不能解决我的问题。其实结果是一样的@gyan【参考方案2】:

解决方案非常简单,只需要包含以下行:

    self.navigationController.navigationBar.translucent = NO;

【讨论】:

以上是关于使用 Interface Builder 将 UITableView 放在导航栏下方的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Interface Builder 在其他 UI 元素的背景中添加 UIButton?

如何像 Interface Builder 一样调整 iOS UI 组件的大小

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

在 Interface Builder 中自定义 UITableViewCell

如何指定我希望 UI 元素在 Interface Builder 中进行方向更改的位置?

SwiftUI vs Interface Builder和故事板[关闭]