更新IBDesignable的约束

时间:2017-03-24 14:29:36

标签: ios uiview interface-builder ibdesignable

我有一个@IBDesignable UIView(ContainerView),它有一个subView(也是@IBDesignable)。我非常希望能够以一种在InterfaceBuilder中自动更新的方式更新代码中subView的约束。

实施例

@IBDesignable class ContainerView: UIView {

    @IBOutlet var mySubView: MyView!

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()
        self.setup()
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        self.setup()
    }

    private func setup() {
        self.mySubView.leadingConstraint.constant = MyResource.sizes.defaultLeading
    }
}

这在运行时会正常运行,但在运行IBDesignablesAgent时会导致mySubView崩溃,因为nilprepareForInterfaceBuilder

我想这样做是为了能够在某些常量中全局设置我的约束,但是将视图表示保留在我的xib文件中。

有没有人为此做过工作,或者我是否在这里找到了不可能的事情?

0 个答案:

没有答案