3

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?

1

2 Answers 2

5

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)
    }
}
Sign up to request clarification or add additional context in comments.

Comments

1

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.