if !UIAccessibilityIsReduceTransparencyEnabled() {
self.blurOutletTop.backgroundColor = UIColor.clear
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = self.blurOutletTop.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.view.addSubview(blurEffectView)
//self.logoOutlet.addSubview(blurEffectView)
}
else {
self.view.backgroundColor = UIColor.black
}
}
我的屏幕顶部附近有一个UIView大小的导航栏。上面的代码为它添加了模糊效果。我想要做的是在视图的顶部添加我的导航按钮,这样他们就不会模糊,但只是通过故事板这样做会导致按钮也变得模糊。
我读到将按钮的插座添加为blurEffectView的子视图会将按钮放在顶部,但是当我取消注释时
self.logoOutlet.addSubview(blurEffectView)
blurOutletTop的位置被重新定位,按钮的背景模糊但标签文本没有,并且按钮本身被重新定位。我试过添加约束,但它也没有帮助。
让我的按钮/图像超出我的blurTopOutlet的最简单方法是什么?
答案 0 :(得分:1)
我在代码中将UIVisualEffectView子类化,然后将各种控件添加为子视图。非常好的效果。由于视图等级预期,不确定是否可以通过IB 100%完成。
ADDED EDIT:您可以通过IB完成大部分工作。设置一切,由于UIButtons是模糊视图的子视图,请尝试使用bringSubview(ToFront :)。如果有效,那可能会容易得多! (我老了,喜欢编码更多。)
答案 1 :(得分:-1)
而不是将blurEffectView
添加到logoOutlet
:
logoOutlet.addSubview(blurEffectView)
您应该将logoOutlet
添加到blurEffectView
:
blurEffectView.contentView.addSubview(logoOutlet)