【问题标题】:UISplitView weird background behind navigation bar导航栏后面的拆分视图奇怪的背景
【发布时间】:2018-06-12 15:30:15
【问题描述】:

我有一个具有以下视图架构的应用程序:

UITabBarController > UISplitViewController > UINavigationController > UIViewController
                                         \ 
                                           > UINavigationController > UIViewController

每当我将嵌入在导航控制器中的视图控制器作为详细视图推送时,我都会看到主导航栏后面出现一个奇怪的非彩色视图。当我的应用程序处于明暗模式时会发生这种情况,如下面的屏幕截图所示。

我在测试应用程序中重新创建了相同的视图架构,但我没有看到颜色偏色的视图出现,所以我不确定是什么原因造成的。

这是我用来创建明暗模式的一些代码:

extension UINavigationBar: RMDThemeable {

    func render(for theme: RMDTheme) {
        switch theme {
        case .light:
            barStyle = .default
        case .dark:
            barStyle = .black
        }
    }
}

class RMDCollectionViewController: UICollectionViewController {

    func render(for theme: RMDTheme) {
        switch theme {
        case .light:
            collectionView?.backgroundColor = UIColor.baseBackgroundLight
        case .dark:
            collectionView?.backgroundColor = UIColor.baseBackgroundDark
        }
    }
}

这是奇怪颜色的截图:

这是视图调试器:

【问题讨论】:

  • 可能是 UIWindow。尝试更改 UIWindow 的背景颜色
  • 我以为可能是窗口,所以我也尝试设置它的背景颜色,但没有效果。仅当详细视图控制器为UINavigationController 时,才会出现非彩色视图。如果我推送一个常规视图控制器,它看起来不错。
  • 这很奇怪。我猜你可能已经尝试过查看调试器?
  • 是的。在测试应用程序和我的真实应用程序中,两个导航栏后面都有一个浅灰色栏。在测试应用程序上(一切正常),视觉效果视图的基本视图(在左侧导航栏中)通常是彩色的。在我的应用程序中,它显示为与该灰色条相似的颜色。就像它在渲染时使用灰色条一样,即使它隐藏在左视图控制器下方。我会添加截图。

标签: ios swift uisplitviewcontroller


【解决方案1】:

您似乎没有检查UINavigationControllertranslucent 属性,请将值设置为false 或创建具有所需颜色的自定义导航栏。

要设置translucent 属性,您可以转到故事板并选择导航控制器的属性检查器,顶部会有一个标记translucent 的复选框,取消选中它或者可以在代码中完成,如

self.navigationController!.navigationBar.isTranslucent = false

获取导航控制器的实例并将其设置为 false。

【讨论】:

  • 我希望栏是半透明的,所以我将属性保留为true。我有一个示例应用程序,它的属性也设置为true,一切正常:github.com/mpdifran/SplitViewTest
  • 嘿,我仔细研究过了,您能否查看在故事板或代码中为导航栏色调设置的颜色,因为我尝试了一些颜色,结果是这样 ibb.co/hvx1Xy ,我添加的颜色是主导航控制器导航栏的深灰色和细节的黑色。
  • 我没有在我的主项目中为导航栏设置任何颜色,我只使用了明暗模糊栏。另外,如果您仔细查看我发布的屏幕截图,您会发现灰色条位于半透明导航栏的后面,因为栏的边缘不是完全灰色的。在您的屏幕截图中,导航栏是一个实心灰色矩形。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多