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

时间:2017-06-12 05:09:44

标签: 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 init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupView()
    }

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

}

我在界面构建器中设置了这些值 英尺:50 ffPrompt:"更改"

但结果是打印
"文字:1,提示:区域"

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

如果你想要

  

func setupView()

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

  

BarPopView