【问题标题】:Blur effect in background does not work with no apparent reason while using a "pop-up" VC使用“弹出式”VC 时,背景模糊效果无明显原因
【发布时间】:2019-07-26 00:20:21
【问题描述】:

当我在 XCode 中启动一个新的单视图 iOS 应用程序项目时,我可以在使用“弹出式”VC 的同时使用 Interface Builder 对背景产生模糊效果,没有任何问题。让我先解释一下我是如何做到的:

  1. 打开 XCode,新建一个 Single View iOS Application 项目
  2. 创建一个视图控制器,然后创建第二个视图控制器。
  3. 通过替换现有的“视图”对象(通过在文档大纲中拖放到它的顶部),将“带模糊的视觉效果视图”对象添加到第二个 VC。
  4. 创建从 1st VC 到 2nd VC 的转场并选择“Present Modally”选项
  5. 在第二个 VC 的“Presentation”选项中选择“Over Current Context”
  6. 最后,当我构建并运行并使用按钮触发 segue 时,第 2 个 VC 来自底部,第 1 个 VC 在背景中显示为模糊。

一切都按预期进行。

但是,我无法通过完全相同的步骤在现有的 iOS 应用项目中获得相同的结果。在这个现有项目中,我使用了表格视图、表格视图控制器、容器视图和其他 UI 元素。然而,为了测试它,我在这个现有项目中创建了一个单独的、独立的 VC,创建了一个新的初始导航控制器,并采取了与我上面解释的完全相同的步骤,即创建新的第一个和第二个 VC。即使与现有的代码和设计没有任何联系,我仍然无法在我的测试中获得第一个 VC 的模糊和可见背景。 segue 发生后,背景为白色,第一个 VC 根本不可见。没有一个地方是模糊的。

可能有一个线索:在我现有的项目中,当我在segue或第二个VC的选项中选择“Over current context”选项时,第二个VC的背景颜色在Interface Builder中变为白色。但在我的测试项目中,此颜色在此选择时保持为灰色。问题可能与此有关。

如果我在创建 segue 之前在 2nd VC 中选择“Over current context”,则在 Interface Builder 中的 2nd VC 中背景保持灰色。然而,当我将 segue 创建为“模式呈现”时,Interface Builder 中的第二个 VC 中的背景变为白色。

我不知道为什么我上面解释的步骤在这个现有项目中不起作用,但它在一个全新的项目中起作用。

我尝试清理构建文件夹,尝试重新启动我的 XCode (v10.3),尝试重新启动我的 Mac (v10.14.5),但我想不出其他任何东西。我已经花了很多时间,我不明白为什么这在这个现有项目中不起作用。可能是什么原因,任何想法将不胜感激。

【问题讨论】:

    标签: ios swift blur


    【解决方案1】:

    在您的第二个视图控制器上将过渡样式设置为在当前上下文上交叉溶解和演示上下文。 将 self.view.backgroundColor = .clear 放入您的第二个视图控制器的视图 didload

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-17
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多