使用Swift对iOS的模糊效果

时间:2014-08-14 20:45:44

标签: ios swift uiimageview blur

我正在尝试制作简单的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,但我不知道该怎么做。 我尝试在view_did_load ViewController函数中执行此操作(image_view是一个出口)

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

但需要NSCoder ......这是什么?也许我的方式是错误的方式?

2 个答案:

答案 0 :(得分: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 :(得分:1)

您需要将image_view设为BlurImageView的实例,因此在您的视图控制器中以及image_view所在的位置,您需要将其设为{{1}的实例而不是BlurImageView的实例。