我有一个@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
崩溃,因为nil
为prepareForInterfaceBuilder
。
我想这样做是为了能够在某些常量中全局设置我的约束,但是将视图表示保留在我的xib文件中。
有没有人为此做过工作,或者我是否在这里找到了不可能的事情?