Swift @IBInspectable var在哪个阶段设置了值

Swift @IBInspectable var在哪个阶段设置了值,swift,ibinspectable,Swift,Ibinspectable,这是我的密码 @IBDesignable class BarPopView: UIView { @IBInspectable var ft: NSString = "1" @IBInspectable var ffPrompt: NSString = "Area" override init(frame: CGRect) { super.init(frame: frame) setupView() } required

这是我的密码

@IBDesignable class BarPopView: UIView {

    @IBInspectable var ft: NSString = "1"
    @IBInspectable var ffPrompt: NSString = "Area"

    override init(frame: CGRect) {
        super.init(frame: frame)
        setupView()
    }

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

    func setupView() {
        print("text: \(ft), prompt: \(ffPrompt)")
    }
}

我在interface builder中设置了这些值
英尺:50 FF提示符:“更改”

但结果是打印

“text:1,prompt:Area”

是因为方法
setupView
在初始化期间被调用,并且在初始化期间属性具有初始值。 如果要相应地调整它们,请使用特性观察者:

@IBInspectable var ft: String = ""{
        didSet {
            setupView()
        }
    } 

这是因为方法
setupView
在初始化期间调用,并且在初始化期间属性具有初始值。 如果要相应地调整它们,请使用特性观察者:

@IBInspectable var ft: String = ""{
        didSet {
            setupView()
        }
    } 
如果你想要

func setupView()

要在所有变量设置完成后执行,请在ViewController类的viewDidLoad()中调用该方法,您将在其中使用自定义视图

BarPopView

如果你想要

func setupView()

要在所有变量设置完成后执行,请在ViewController类的viewDidLoad()中调用该方法,您将在其中使用自定义视图

BarPopView


但是我希望func setupView()在所有变量设置完成后执行。您可以通过在自定义类中创建该视图的出口,然后调用它来实现这一点。但是从类初始化中删除setupView方法。但是我希望在所有变量设置完成后执行func setupView()。您可以通过在自定义类中创建该视图的出口,然后调用它来实现这一点。但是从类初始化中删除setupView方法。谢谢,因为我想让self调用它,所以我在key var didSet中设置了它谢谢,因为我想让self调用它,所以我在key var didSet中设置了它