我有一个带有容器视图的 UIViewController。这个容器视图包含一个 UITableViewController。
UIViewController 嵌入在 UINavigationController 中。我通过更改色调颜色、栏色调颜色和标题文本属性来配置 NavigationBar,但是当我尝试更改半透明度时出现问题。我通过删除所有其他自定义代码来挑出问题。每当我在 UIViewController 中这样做时-viewDidLoad
:
self.navigationController.navigationBar.translucent = NO;
Container View 在自身顶部添加了一些空间,就好像它有自己的导航栏一样。每当我将半透明设置为 YES 时,视图都会正确显示所有内容。每当我将半透明设置为 NO 时,这只发生在包含的视图上。
有什么我在这里想念的吗?
我尝试YES
在包含的视图上设置半透明并将其设置为隐藏,但没有任何效果。不知何故,包含的视图继承了父容器的属性?每当我将半透明设置为 时,如何避免在包含的视图上创建这个额外的空间NO
?
我希望设置半透明只会影响半透明,但不会影响视图的位置。
当半透明 = YES
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
| |
| |
| |
| |
| |
+---------------------------------+
半透明时 = 否
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
|blank space created on top of view
| |
+---------------------------------+
| |
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
+---------------------------------+
PS我的观点比这更复杂,我很简单。