首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >容器视图被向下推,好像它有一个UINavigationBar?

问容器视图被向下推,好像它有一个UINavigationBar?
EN

Stack Overflow用户
提问于 2013-09-19 08:52:10
回答 8查看 17K关注 0票数 46

我有一个带有容器视图的UIViewController。此容器视图包含一个UITableViewController。

UIViewController嵌入到UINavigationController中。我通过更改浅色、条形色调和标题文本属性来配置NavigationBar,但是当我试图更改半透明时,我遇到了一个问题。我已经通过删除所有其他定制代码来指出问题所在。每当我在UIViewController的-viewDidLoad中这样做时

self.navigationController.navigationBar.translucent = NO;

Container在自身之上添加了一些空间,就好像它有自己的导航条一样。每当我将半透明设置为“是”时,视图就会正确地显示所有内容。当我将半透明设置为NO时,这只发生在包含的视图上。

这里有什么我遗漏的东西吗?

我尝试在包含的视图上将半透明设置为YES,并将其设置为隐藏,但没有工作。是否包含从父容器继承属性的视图?当我将半透明设置为NO时,如何避免在包含的视图上创建额外的空间?

我认为,设置半透明只会影响半透明,而不会影响观点的立场。

当半透明=是

代码语言:javascript
复制
+---------------------------------+
|                                 |
|     UINavigationBar             |
|                                 |
+---------------------------------+
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
|    UITableViewController        |
|    in a Contained View          |
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
+---------------------------------+

当半透明=不

代码语言:javascript
复制
+---------------------------------+
|                                 |
|     UINavigationBar             |
|                                 |
+---------------------------------+
|                                 |
|blank space created on top of view
|                                 |
+---------------------------------+
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
|     UITableViewController       |
|     in a Contained View         |
|                                 |
+---------------------------------+

我的观点比这更复杂,我在简化。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-09-19 09:13:10

这里您所缺少的是,一个半透明的导航条位于您的视图的顶部,而一个非半透明的导航条则将您的视图控制器的视图向下推下(有效地调整了它的大小)。

所以这里发生的事情是,使用半透明的导航条,这个空白实际上隐藏在条子下面,而当条子不是半透明的时候,它是“向下推”的。

有很多方法可以做到这一点,这主要取决于你是否使用自动布局。

票数 35
EN

Stack Overflow用户

发布于 2016-11-17 10:59:44

我通过在-viewDidLoad中添加这一行代码来解决这个问题

代码语言:javascript
复制
self.extendedLayoutIncludesOpaqueBars = YES;
票数 24
EN

Stack Overflow用户

发布于 2014-04-21 07:08:10

如果这个问题发生在情节提要中(没有触及代码中的半透明属性),我发现检查NavigationBar设置和(如果必要的话)故事板源文件是有帮助的。

(这并不完全适用于这个问题,但当我搜索这个问题时,基本上只有这个问题出现了,也许这些信息可以帮助其他人处理相同的问题。)

详情如下:

若要访问情节提要编辑器中的导航栏:显示文档大纲(菜单编辑器->显示文档大纲),请选择导航栏。

​

​

然后,在“属性”检查器右侧的“实用程序”窗格中,确保“半透明”未选中。

​

​

如果这没有帮助,请在TextEdit中打开情节提要文件,查找navigationBar元素并检查opaque或translucent属性。你想要translucent="NO"。

​

​

(要打开故事板源代码:在项目导航器中的Xcode中,右键单击情节提要文件。选择“”并在Finder窗口中右键单击该文件并选择“.”并选择TextEdit。)

编辑:(我不知道它是否一直都在那里,但是我们可以在项目导航器中右键单击故事板文件,然后选择"Open“->源代码”。不需要去寻找者。)

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18890192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档