以这种方式设置约束之后,我正尝试缩放约束的值:
@IBDesignable
class ScaledConstraint: NSLayoutConstraint {
@IBInspectable var constantValue: CGFloat = 0 { didSet { constantValueDidSet() } }
func constantValueDidSet() {
super.constant = (constantValue / 320) * UIScreen.main.bounds.width
}
}
但是这种方法迫使我为每个约束更改IBInspectable变量。我曾尝试处理它的默认默认值,但仅当我从代码中设置常量时,它才起作用,而当我从界面生成器中设置它时,它不起作用:
override var constant: CGFloat {
set(newValue) {
self.constant = (newValue / 320) * UIScreen.main.bounds.width
}
get {
return self.constant
}
}
在没有自定义IBInspectable变量的情况下,是否可以通过接口构建器设置常量后立即更改常量值?预先感谢!
答案 0 :(得分:0)
您可以将情节提要中的约束输出到View Controller中,这与输出UIView和其他View组件的方式类似,尽管更烦人的是自己获取输出。 (答案Here向您展示了操作方法)。
因此,您的一家门店看起来像这样:
@IBOutlet weak var myConstraint: NSLayoutConstraint!
您以后可以拨打的电话:
myConstraint.constant = 100 //Or whatever value you want
此后,您应该确保致电:
view.layoutIfNeed()