我有一个奇怪的行为,不希望在Interface Builder中更新约束。
以下是我的代码的两个变体,两者都不起作用。
extension NSLayoutConstraint {
@IBInspectable var preciseConstant: CGFloat {
get {
return constant * UIScreen.main.scale
}
set {
constant = CGFloat(newValue) / UIScreen.main.scale
}
}
}
@IBDesignable class CustomLayoutConstraint: NSLayoutConstraint {
@IBInspectable var screenHeight: CGFloat = 0.0 {
didSet {
changeContraint()
}
}
func changeContraint() {
self.constant = self.screenHeight / UIScreen.main.scale
}
}
我的错误还是Xcode的错误?
答案 0 :(得分:0)
使用IBInspectable
属性时,didSet
逻辑不起作用。您需要做的就是在self.constant
方法中更改所需的属性(例如awakeFromNib
)。