Reputation: 401
I am trying to make simple iOS app. I need to make image view with blur effect. I found this code on Stack Overflow:
class BlurImageView: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
}
required init(coder aDecoder: NSCoder!){
super.init(coder: aDecoder)
var blur:UIBlurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
var effectView:UIVisualEffectView = UIVisualEffectView (effect: blur)
effectView.frame = frame
addSubview(effectView)
}
}
And I need to connect this class to my image_view
, but I don't know how to do it.
I try to do it in my view_did_load
function in my ViewController
(image_view
is a outlet)
override func viewDidLoad() {
super.viewDidLoad()
image_view = BlurImageView()
}
but NSCoder
required... What is it? maybe my way is a wrong way?
Upvotes: 3
Views: 5285
Reputation: 4493
You need to make your image_view
an instance of BlurImageView
, so in your view controller and where your image_view
is an outlet, you need to make it an instance of BlurImageView
and not an instance of an UIImageView
.
Upvotes: 1
Reputation: 2113
You don't need it. The reason why you're not seeing results is because you're attempting to initialize the class from a different initializer than the one you setup.
Try:
class BlurImageView: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
}
override init() {
var blur:UIBlurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
var effectView:UIVisualEffectView = UIVisualEffectView (effect: blur)
effectView.frame = frame
addSubview(effectView)
}
}
Upvotes: 5