iOS blur effect to ImageView with Swift

一曲冷凌霜 提交于 2019-12-05 02:44:59

问题


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:


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.




回答2:


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)
    }
}


来源:https://stackoverflow.com/questions/25317292/ios-blur-effect-to-imageview-with-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!