假设View1和View2是两个大小相同的矩形。使用自动布局,我可以设置View1.Center X = View2.Leading,使View1和View2在X方向中途重叠。现在我需要这个重叠是一个不同的百分比,比如重叠1:3或任何其他分数。如何通过Autolayout约束来实现这一目标?
答案 0 :(得分:2)
它不像设置view2导致view1的中心X那么简单,但你可以通过在运行时调整前导约束的constant
属性来做到这一点,最好是在view1的width
的确切位置。集。
首先view2.leading == view1.trailing
:
leadingConstraint = NSLayoutConstraint(item: view2, attribute: .Leading, relatedBy: .Equal, toItem: view1, attribute: .Trailing, multiplier: 1.0, constant: 0.0)
然后,根据您定义视图(在视图或视图控制器中)的位置,在所有视图布局后立即更新有问题的约束常量:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
leadingConstraint.constant = -(view1.frame.width / 3.0)
}
您可以下载我为您创建的the sample project并使用它来更好地理解。
答案 1 :(得分:0)
最后,我创建了一个不可见的视图,该视图的宽度与view1的宽度成比例。然后将view2设置为相对于不可见视图。通过更改我选择的比例,我可以达到我需要的任何百分比,包括1/2或1/3。