使用Swift将iOS模糊效果应用于ImageView

3

我正在尝试制作一个简单的iOS应用程序。我需要创建带模糊效果的图像视图。 我在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)
  }
}

我需要将这个类连接到我的image_view,但我不知道该如何做。 我尝试在ViewControllerview_did_load函数中完成此操作(image_view是一个outlet)。

override func viewDidLoad() {
    super.viewDidLoad()
    image_view = BlurImageView()
}

但是NSCoder要求...这是什么?也许我的方法不对吗?


使用https://dev59.com/QWAf5IYBdhLWcg3w_W9j,添加模糊效果。 - mr_ivan777
2个回答

5

您不需要它。您没有看到结果的原因是,您正在尝试从与您设置的初始化程序不同的初始化程序中初始化类。

请尝试:

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

1

您需要将image_view实例化为BlurImageView,所以在您的视图控制器中和image_view是一个输出口的地方,您需要将其实例化为BlurImageView而不是UIImageView的实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接