To achieve the effect you desire, for the views that you want to has this effect, add them to the contentView
of a UIVisualEffectView
, which then is added as subview of self.view
. For other views not to be affected, add them to self.view
directly.
When I run your code, I get a black screen.
UIVibrancyEffect amplifies and adjusts the color of content layered
behind the view, allowing content placed inside the contentView to
become more vivid. It is intended to be placed over, or as a subview
of, a UIVisualEffectView that has been configured with a UIBlurEffect.
This effect only affects content added to the contentView.
notificationCenterVibrancyEffect
is a kind of UIVibrancyEffect, but in your code there is no UIVisualEffectView with a UIBlurEffect configured, you should create one, and place your effectView
over that view or add your effectView
as subview of that view's contentView. Otherwise you will not see any vibrancy.
Here is some test code.
let label = UILabel()
label.frame = CGRectMake(0, 0, 130, 30)
label.text = "Has Vibracy!"
let effectView = UIVisualEffectView(effect: UIVibrancyEffect.notificationCenterVibrancyEffect())
effectView.frame = CGRectMake(0, 0, 130, 30)
effectView.backgroundColor = UIColor.clearColor()
effectView.userInteractionEnabled = true
effectView.contentView.addSubview(label)
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .Dark))
blurView.contentView.addSubview(effectView)
blurView.frame = CGRectMake(80, 20, 130, 30)
self.view.tintColor = UIColor.clearColor()
let label1 = UILabel()
label1.frame = CGRectMake(80, 60, 130, 30)
label1.text = "No Vibracy!"
self.view.addSubview(blurView)
self.view.addSubview(label1)