用户定义的运行时属性(IBInspectable)是否在预定义属性之后设置?

ben*_*lis 11 interface-builder storyboard nib ios

我希望通过类别方法添加一个新IBInspectable属性(计算属性)UILabel.理想情况下,我希望在设置标签文本后设置此属性(通过setValue:forKey),因为此IBInspectable属性可能导致UILabels文本被更新,我们不希望UILabel稍后的文本替换它.查看文档时,没有提及nib/storyboard在Interface Builder中配置的属性的加载期间是否始终在用户定义的属性之前设置预定义的属性.

是否使用自定义属性添加到Interface Builder中的对象IBInspectable或保证在标准预定义对象属性/属性之后设置用户定义的运行时属性?

pic*_*ano 0

如果您使用 IBInspectable 计算机变量创建扩展,则当在 Interface Builder 中设置这两个值时,放置到 Interface Builder 中该自定义字段中的值将覆盖标签文本字段中的值,即使它不会在 Interface Builder 中以这种方式预览。

extension UILabel {

    @IBInspectable var value: String? {
        get {
            return text
        }

        set {
            text = newValue
            setNeedsDisplay()
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

界面构建器 在此输入图像描述