我们正在使用Xcenter
和Ycenter
NSLayoutConstraint
将subview
放在父superview
中。由于我们需要保持位置成比例,因此不能使用约束的constant
值来定位它,它必须完全基于乘数。
subview
可以位于superview
边界之外,因此需要一个负乘数。问题是,当我们应用负乘数(通过代码)时,子视图位置正在以意外的方式移动。使用自动布局公式似乎是可行的,但实际上并非如此。这是可视化效果:
设置宽度/高度约束后,我将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
仅当乘数为负时,我们才会获得意外结果。
有人对负乘法器有什么暗示吗?我们在这个问题上度过了一段美好的过去...