【发布时间】:2013-09-24 06:33:07
【问题描述】:
我有一个带有容器视图的 UIViewController。这个容器视图包含一个 UITableViewController。
UIViewController 嵌入在 UINavigationController 中。
我通过更改色调颜色、条色调颜色和标题文本属性来配置 NavigationBar,但是当我尝试更改半透明度时出现问题。我通过删除所有其他自定义代码来挑出问题。
每当我在 UIViewController 的 -viewDidLoad 中这样做时:
self.navigationController.navigationBar.translucent = NO;
Container View 在其自身顶部添加了一些空间,就好像它有自己的导航栏一样。每当我将半透明设置为 YES 时,视图都会正确显示所有内容。每当我将 translucent 设置为 NO 时,这只发生在包含的视图上。
这里有什么我遗漏的吗?
我尝试在包含的视图上将半透明设置为YES,并将其设置为隐藏,但没有任何效果。
不知何故,包含的视图继承了父容器的属性?
每当我将半透明度设置为 NO 时,如何避免在包含的视图上创建这个额外的空间?
我希望设置半透明只影响半透明,而不影响视图的位置。
当半透明 = YES
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
| |
| |
| |
| |
| |
+---------------------------------+
半透明时 = 否
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
|blank space created on top of view
| |
+---------------------------------+
| |
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
+---------------------------------+
附:我的观点比这更复杂,我只是在简单化。
【问题讨论】:
-
视图是否在滚动视图中被下推?如果是这样,在主视图控制器上设置
self.automaticallyAdjustsScrollViewInsets = NO;。实际上,是的,它是一个 TVC,所以你需要这个。 -
@Fogmeister 为我工作...谢谢!
-
@Fogmeister 也为我工作。谢谢。
-
@Fogmeister 谢谢一群老兄!拯救了我的一天
-
@Fogmeister 你 2013 年的评论在 2017 年救了我!
标签: ios objective-c uiviewcontroller uikit ios7