假设 View1 和 View2 是两个大小相同的矩形。通过自动布局,我可以设置 View1.Center X = View2.Leading 以使 View1 和 View2 在 X 方向上重叠一半。现在我需要这个重叠是一个不同的百分比,比如说重叠 1:3 或任何其他分数。如何使用自动布局约束来实现这一点?
最佳答案
它不像设置 view2 到 view1 的中心 X 那样简单,但你可以通过调整 constant
来做到这一点。运行时前导约束的属性,最好在 width
的确切位置view1 已设置。
先做view2.leading == view1.trailing
:
leadingConstraint = NSLayoutConstraint(item: view2, attribute: .Leading, relatedBy: .Equal, toItem: view1, attribute: .Trailing, multiplier: 1.0, constant: 0.0)
然后,根据您定义 View 的位置(在 View 或 View Controller 中),您可以在所有 View 布局后立即更新相关约束的常量:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
leadingConstraint.constant = -(view1.frame.width / 3.0)
}
您可以下载the sample project我为您创建并使用它以更好地理解它。
关于ios - 使用自动布局约束实现百分比重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121969/