无法在 tableviewcontroller 上获得半透明导航栏。与视图控制器和 tableview 一起工作正常

Posted

技术标签:

【中文标题】无法在 tableviewcontroller 上获得半透明导航栏。与视图控制器和 tableview 一起工作正常【英文标题】:Can't get translucent navigation bar on tableviewcontroller. Works fine with view controller and tableview 【发布时间】:2016-03-19 02:33:32 【问题描述】:

我有一个渐变背景,我想通过导航栏和标签栏显示。我将它们设置为“半透明黑色”。如果我创建一个 ViewController 并在其上放置一个 TableView,则效果很好。但是,我无法让它与 TableViewController 一起正常工作。标签栏工作正常,但导航栏最终变成黑色。如果我关闭“调整滚动视图插图”,那么导航栏看起来就像我想要的那样,但是第一个表格视图行的上半部分会被截断(参见示例)。渐变位于背景视图上。表格视图的背景颜色清晰。

有什么方法可以在 TableViewController 上获得相同的效果?我是否需要以某种方式使表格视图的标题或第一行成为导航栏下方的背景?

添加了 TableView 的 ViewController:

打开“调整滚动视图插图”的 TableViewController:

“调整滚动视图插图”关闭的 TableViewController:

【问题讨论】:

【参考方案1】:

做完测试后我认为你需要:

    调整滚动视图插图ON 延伸边缘 - 在顶栏下方 ON

没有。 1 让UITableView 覆盖整个屏幕(包括导航栏下方),2 号在UITableView 内容顶部添加一个空格,使内容不隐藏在导航栏下方。

【讨论】:

这实际上是我在上面的示例 #2 中设置的方式。 “在顶栏下”似乎只有在“调整滚动视图插图”被关闭时才有效。我还尝试打开所有扩展边缘属性并打开调整滚动视图插图。顶部仍然有一个黑条。 有趣的是,如果我关闭“Under Bottom Bars”,那么底部栏就会变成黑色。打开它,底栏又是半透明的了。【参考方案2】:

我在尝试在具有清晰导航栏的静态表格视图控制器上设置全屏背景时遇到了类似的问题。我通过在我的 tableView 上使用 backgroundView 而不是设置 backgroundColor 来解决它。例如:

myTableView.backgroundView = UIImageView(image: UIImage(named: "backgroundImg.png")) 

我将导航栏设置为清除,但您可以随意设置样式:

navigationController?.navigationBar.backgroundColor = UIColor.clear

我还必须设置 Extend Edges - Under Top Bars ON

【讨论】:

以上是关于无法在 tableviewcontroller 上获得半透明导航栏。与视图控制器和 tableview 一起工作正常的主要内容,如果未能解决你的问题,请参考以下文章

如何从 TabBarController 上 NavigationController 的 TableViewController 子项锁定旋转

无法调用 tableViewController

我无法将 TableViewCell 按钮连接到 TableViewController!如何将 TableViewCell 中的值连接到 TableViewController?

ios 7 TableViewController 单元格无法完全显示

无法使用 CFQuery TableViewController (Swift 2) 显示自定义单元格

在 TableViewController 上添加图像直到搜索栏处于非活动状态