有没有办法让自定义约束在界面生成器中工作?
Is there a way to make a custom constraint work in interface builder?
制作一个具有固定高度约束的 UIView,注意我在 IB 中将其设置为 40。
将约束 class 更改为:
@IBDesignable class BadassHeightConstraint: NSLayoutConstraint {
override var constant: CGFloat {
set {
super.constant = newValue
}
get {
return calc()
}
}
private func calc() -> CGFloat {
return 100.0
}
}
这个在运行时完美运行,左图,它是 100,而不是 40。
但是,我无法在 IB 中使用它。为什么会这样?
是否有任何解决方案可以让这些在 IB 中工作?
简单的说,只有一个UIView可以@IBDesignable
.
制作一个具有固定高度约束的 UIView,注意我在 IB 中将其设置为 40。
将约束 class 更改为:
@IBDesignable class BadassHeightConstraint: NSLayoutConstraint {
override var constant: CGFloat {
set {
super.constant = newValue
}
get {
return calc()
}
}
private func calc() -> CGFloat {
return 100.0
}
}
这个在运行时完美运行,左图,它是 100,而不是 40。
但是,我无法在 IB 中使用它。为什么会这样?
是否有任何解决方案可以让这些在 IB 中工作?
简单的说,只有一个UIView可以@IBDesignable
.