gpt4 book ai didi

ios - 在以模态方式从 View Controller 切换到另一个 View Controller 后,在 View Controller 上添加模糊效果

转载 作者:行者123 更新时间:2023-11-28 15:05:10 28 4
gpt4 key购买 nike

我有一个包含按钮的 View Controller (vc1)。该按钮以模态方式显示另一个 View Controller (vc2)。 segue 的presentation style 设置为over current context

我还以编程方式在 vc1 上创建了一个 UIVisualEffectView(它覆盖了整个 vc1view)。

现在,我需要将视觉效果的效果设置为 UIBlurEffect,但是在模态显示 vc2 之后(viewbackgroundColour 设置为 clear,因此 vc1vc2 后面仍然可见。

是否可以在不必编写自定义 View Controller 转换的情况下实现?如果可以,如何实现?如果您知道如何执行此操作,我将不胜感激任何帮助或建议。

最佳答案

iOS 默认不提供模糊过渡。所以你需要自定义代码。
一个简单的解决方案是添加一个 subview :

在转换到 vc2 时添加以下代码:

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
blurEffectView = UIVisualEffectView(effect: blurEffect) // Global variable
blurEffectView.frame = view.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.view.addSubview(blurEffectView)

NotificationCenter.default.addObserver(self, selector: #selector(self.removeBlurView), name: NSNotification.Name(rawValue: "removeBlurView"), object: nil)

去除模糊 View 的函数(在vc1中):

func removeBlurView()
{
NotificationCenter.default.removeObserver(self)
blurEffectView.removeFromSuperview()
}

关闭 vc2 时在 vc2 中添加以下内容:

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "removeBlurView"), object: nil)

Ray's tutorial 中所述,还有其他方法可以实现此目的和密切相关的tutorial

关于ios - 在以模态方式从 View Controller 切换到另一个 View Controller 后,在 View Controller 上添加模糊效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com