UIVisualEffect 未在 UIView 上显示
Posted
技术标签:
【中文标题】UIVisualEffect 未在 UIView 上显示【英文标题】:UIVisualEffect is not showing on UIView 【发布时间】:2017-01-05 18:59:05 【问题描述】:我有一个UIView
并以编程方式创建,然后我将subView
添加到我的viewController.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()
添加了模糊效果,我使用breakpoints
和品脱语句if blur.subviews == [blurEffectView]
print("Blur effect added as a subview")
仔细检查并打印出来。
我有一张背景图片来确定它是否模糊。
我还尝试在viewDidLoad()
中添加模糊效果,但没有任何反应。
【问题讨论】:
【参考方案1】:将黄色背景视图和模糊视图直接添加为主视图的子视图:
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
.
【讨论】:
感谢您的帮助。我不知道我为什么要这样做。我正在处理约束,因此我可以轻松地重新约束并移动它们。以上是关于UIVisualEffect 未在 UIView 上显示的主要内容,如果未能解决你的问题,请参考以下文章
MonoTouch - UIView.Animate 完成回调未在按钮 touchUpInside 委托内调用
UIScrollView 内的 UIView 未在 3,5 英寸屏幕 iOS 上调整大小