NSLayoutConstraint负乘数给出意外结果

时间:2018-12-22 13:35:04

标签: ios uiview autolayout nslayoutconstraint nslayoutanchor

我们正在使用XcenterYcenter NSLayoutConstraintsubview放在父superview中。由于我们需要保持位置成比例,因此不能使用约束的constant值来定位它,它必须完全基于乘数。

subview可以位于superview边界之外,因此需要一个负乘数。问题是,当我们应用负乘数(通过代码)时,子视图位置正在以意外的方式移动。使用自动布局公式似乎是可行的,但实际上并非如此。这是可视化效果:

enter image description here

设置宽度/高度约束后,我将X和Y设置如下:

let xAnchor = NSLayoutConstraint(item: self, attribute: .centerX, relatedBy: .equal, toItem: superview, attribute: .centerX, multiplier: multpliers.x, constant: 0)        
xAnchor.isActive = true

let yAnchor = NSLayoutConstraint(item: self, attribute: .centerY, relatedBy: .equal, toItem: superview, attribute: .centerY, multiplier: multpliers.y, constant: 0)
yAnchor.isActive = true

仅当乘数为负时,我们才会获得意外结果。

有人对负乘法器有什么暗示吗?我们在这个问题上度过了一段美好的过去...

0 个答案:

没有答案