自动布局中的比例距离约束
Posted
技术标签:
【中文标题】自动布局中的比例距离约束【英文标题】:Proportional distance constraints in auto layout 【发布时间】:2013-07-18 09:27:49 【问题描述】:我无法使用 >ios6 中的自动布局来实现所需的视图布局。
我有固定到父视图的 UIView1 和 UIView3(对应于 TopSpaceToSuperview、BottomSpaceToSuperView 和 FixedHeight),当父视图改变高度时它们的行为与预期一样。
当父视图改变高度时,如果我希望 UIView2 与其兄弟(UIView1 和 UIView3)保持相同的比例距离,我应该在 IB 中为 UIView2 指定哪些约束? (如图所示)
【问题讨论】:
【参考方案1】:这样做的方法是在视图之间使用不可见的“间隔”视图。
您不能拥有相对大小的空间,因此请改用这些视图。
当前空间在哪里放置一个 UIView。
然后(在代码中,因为您无法在 IB 中执行此操作)使用您想要的正确乘数在这些之间设置高度约束。
即
[NSLayoutConstraint constraintWithItem1:spacer2
attribute:NSLayoutAttributeHeight
relation:NSLayoutRelationEqual
item2:spacer1
attribute:NSLayoutAttributeHeight
multiplier:0.5
constant:0];
然后让其他视图以 0 间距“粘贴”在这些间隔视图的上方和下方。
然后您只需隐藏这些视图,然后自动布局将处理其余部分。
【讨论】:
我不知道这个功能是什么时候添加到 xcode 中的,但现在你可以在 IB 中设置该约束。 @Sikander 随意。这是一个三年前的答案。添加到 Xcode 的部分是能够更改约束的乘数。以上是关于自动布局中的比例距离约束的主要内容,如果未能解决你的问题,请参考以下文章