我有一个带有容器视图的UIViewController。此容器视图包含一个UITableViewController。
UIViewController嵌入到UINavigationController中。我通过更改浅色、条形色调和标题文本属性来配置NavigationBar,但是当我试图更改半透明时,我遇到了一个问题。我已经通过删除所有其他定制代码来指出问题所在。每当我在UIViewController的-viewDidLoad中这样做时
self.navigationController.navigationBar.translucent = NO;
Container在自身之上添加了一些空间,就好像它有自己的导航条一样。每当我将半透明设置为“是”时,视图就会正确地显示所有内容。当我将半透明设置为NO时,这只发生在包含的视图上。
这里有什么我遗漏的东西吗?
我尝试在包含的视图上将半透明设置为YES,并将其设置为隐藏,但没有工作。是否包含从父容器继承属性的视图?当我将半透明设置为NO时,如何避免在包含的视图上创建额外的空间?
我认为,设置半透明只会影响半透明,而不会影响观点的立场。
当半透明=是
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
| |
| |
| |
| |
| |
+---------------------------------+当半透明=不
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
|blank space created on top of view
| |
+---------------------------------+
| |
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
+---------------------------------+我的观点比这更复杂,我在简化。
发布于 2013-09-19 09:13:10
这里您所缺少的是,一个半透明的导航条位于您的视图的顶部,而一个非半透明的导航条则将您的视图控制器的视图向下推下(有效地调整了它的大小)。
所以这里发生的事情是,使用半透明的导航条,这个空白实际上隐藏在条子下面,而当条子不是半透明的时候,它是“向下推”的。
有很多方法可以做到这一点,这主要取决于你是否使用自动布局。
发布于 2016-11-17 10:59:44
我通过在-viewDidLoad中添加这一行代码来解决这个问题
self.extendedLayoutIncludesOpaqueBars = YES;发布于 2014-04-21 07:08:10
如果这个问题发生在情节提要中(没有触及代码中的半透明属性),我发现检查NavigationBar设置和(如果必要的话)故事板源文件是有帮助的。
(这并不完全适用于这个问题,但当我搜索这个问题时,基本上只有这个问题出现了,也许这些信息可以帮助其他人处理相同的问题。)
详情如下:
若要访问情节提要编辑器中的导航栏:显示文档大纲(菜单编辑器->显示文档大纲),请选择导航栏。

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

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

(要打开故事板源代码:在项目导航器中的Xcode中,右键单击情节提要文件。选择“”并在Finder窗口中右键单击该文件并选择“.”并选择TextEdit。)
编辑:(我不知道它是否一直都在那里,但是我们可以在项目导航器中右键单击故事板文件,然后选择"Open“->源代码”。不需要去寻找者。)
https://stackoverflow.com/questions/18890192
复制相似问题