我正在尝试制作简单的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
......这是什么?也许我的方式是错误的方式?
答案 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
的实例。