问题子类化 UIVisualEffect

Issues subclassing UIVisualEffect

我正在尝试对 UIVisualEffect 进行子类化,但在实现正确的初始化方法时遇到了问题。到目前为止我有这个:

import UIKit

class BlurView: UIVisualEffect {



    init(effect: UIVisualEffect?) {
        super.init(effect)
        print("Init 1 called")

    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        print("Init 2 called")
    }



}

我收到错误:"Missing the argument coder in the call"。我也试过:

import UIKit

class BlurView: UIVisualEffect {



    init(effect: UIVisualEffect?) {
        super.init()
        print("Init 1 called")

    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        print("Init 2 called")
    }



}

这是在抱怨我没有实现 init 方法。我尝试这样做但仍然无法正常工作。关于如何实施这些方法的任何想法?谢谢!

有一个错字,你想继承 UIVisualEffectView,而不是 UIVisualEffect
它们不同 UIVisualEffectView 继承自 UIView 并应用您传入的 UIVisualEffectUIVisualEffect 只是效果。

class BlurView: UIVisualEffectView {
    override init(effect: UIVisualEffect?) {
        super.init(effect: effect)
    }


    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}