【问题标题】:Black smudge under navigation controller when transitioning转换时导航控制器下的黑色污迹
【发布时间】:2017-06-10 02:07:19
【问题描述】:

当我在附加到导航控制器的页面之间切换时,有时导航栏下方会出现一个黑色标记..

任何想法如何删除它?

它们只是空白页。

let vc = self.storyboard!.instantiateViewController(withIdentifier: page)
            self.show(vc, sender: self)

我尝试在导航控制器类中将背景设置为白色,就像某些线程推荐的那样,它没有做任何事情。

【问题讨论】:

    标签: ios swift uinavigationcontroller


    【解决方案1】:

    当您在 edgesForExtendedLayout 包含 .top 的视图控制器和不包含 .top 的视图控制器之间转换时,会发生“污点”。为避免这种情况,请确保所有视图控制器都具有相同的 edgesForExtendedLayout 和相同的 extendedLayoutIncludesOpaqueBars 设置。

    【讨论】:

      【解决方案2】:

      对我来说,当我使用库中的 ToolBar 时会发生这种情况。通过在导航控制器的属性检查器中切换“显示工具栏”来使用导航控制器本身的工具栏来修复

      【讨论】:

        【解决方案3】:

        我的应用也有这个问题,除了导航栏下有黑色污迹工具栏。我最终发现问题出在我在多个场景中的UIToolbarisTranslucent 属性上。

        一旦我将此属性设置为 false,导航栏和工具栏 both 下的黑色污迹就消失了(为什么禁用工具栏上的半透明也可以修复导航栏,我不知道)。我曾尝试在UINavigationBar 上禁用isTranslucent,但这只会修复顶部的污迹。幸运的是,就我而言,工具栏下永远不会出现任何内容,因此禁用半透明不是问题。如果需要工具栏下的半透明,此解决方案可能不适合您。

        【讨论】:

          猜你喜欢
          • 2019-02-08
          • 2017-07-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多