我有一个 UIView
并以编程方式创建,然后我将其作为 subView
添加到我的 viewController.view
中。但是, View 不受模糊影响。
这是我的代码:
let blurryView: UIView = {
let blur = UIView()
blur.backgroundColor = UIColor.yellow
blur.alpha = 0.90
let blurEffect = UIBlurEffect(style: .extraLight)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blur.addSubview(blurEffectView)
blurEffectView.center = blur.center
blurEffectView.frame = blur.bounds
blur.translatesAutoresizingMaskIntoConstraints = false
return blur
}()
func manageBlurView() {
blurryView.widthAnchor.constraint(equalToConstant: 250).isActive = true
blurryView.heightAnchor.constraint(equalToConstant: 250).isActive = true
blurryView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
blurryView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(blurryView)
manageBlurView()
}
- 添加了模糊效果,我使用
断点
和 pint 语句再次检查if blur.subviews == [blurEffectView] { print("添加为 subview 的模糊效果") }
并打印出来。 - 我有一张背景图片,可以确定它是否模糊。
- 我也尝试在
viewDidLoad()
中添加模糊效果,但没有任何反应。
最佳答案
直接添加黄色背景 View 和模糊 View 作为主视图的 subview :
let backg = UIView(frame: self.view.frame)
backg.backgroundColor = UIColor.yellow
backg.alpha = 0.90
self.view.addSubview(backg)
// the blur effect
let blurEffect = UIBlurEffect(style: .extraLight)
let blurredEffectView = UIVisualEffectView(effect: blurEffect)
blurredEffectView.frame = self.view.frame
self.view.addSubview(blurredEffectView)
你可以将上面的代码放在viewDidLoad
中。
关于ios - UIVisualEffect 没有显示在 UIView 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41492637/