我有一个函数可以轻松地将视图锚定到其他视图,而无需编写大量代码。该函数调用如下:
view.anchor(top: NSLayoutYAxisAnchor?,
left: NSLayoutXAxisAnchor?,
bottom: NSLayoutYAxisAnchor?,
right: NSLayoutXAxisAnchor?,
topConstant:CGFloat?,
leftConstant: CGFloat?,
bottomConstant: CGFloat?,
rightConstant: CGFloat?,
widthConstant: CGFloat?,
heightConstant: CGFloat?)
基本上我只是为其他视图添加锚点,如果需要添加常量并调整宽度和高度。所有参数都是可选的
这很好用,它可以节省大量的空间和代码,但是目前我想在我的一个视图中更改heightConstant
,而我看到人们改变约束的唯一方法是创建一个变量对于这样的每个约束:
var heightConstraint = view.heightAnchor.constraint(equalTo: 20, multiplier: 1)
然后通过访问变量来更改它。
除了这种方式还有其他更新约束的方法,还是我必须摆脱我的功能并开始使用变量
答案 0 :(得分:1)
我建议您开始使用变量来保存约束。
你可以在你的视图上的constraints
变量中挖掘,在那里找到正确的约束,然后更新它,但这是非常混乱的代码。
答案 1 :(得分:0)
更改约束的另一种方式是获取该UI的出口,然后简单地写入您想要更改的位置
@IBOutlet weak var constraintsName:NSLayoutConstraint!
//Put this code viewdidLOad,didAppear or etc method....
self. constraintsName.constant = value