用一个例子来证明我的问题可能是最简单的,所以这里是:
我有一个容器 View ,它有两个 subview ,A 和 B。
容器:240x80
A:80x80,固定前导/顶部/底部间距。
B:160x80,固定前导/顶部/底部间距,固定 h 间距与 A。
现在,当我将容器的大小调整为 480x80 时,我得到了这样的结果:
那是因为 Xcode 认为我的约束不明确,所以它为我固定了 A 的宽度,并为 B 提供了所有额外的水平空间。
好的,我理解它的担忧,但我真正想要的是让 A 和 B 按比例调整大小,如下所示:
我的直觉是它与拥抱/压缩阻力优先级设置有关,但我不知道如何设置这些值以获得我想要的结果!
换句话说,当容器被放大时,如何指定多余的空间去哪里?如何设置优先级,以便空间分配到 View A 和 View B 4:6? 5:5? 8:2?
谢谢!
最佳答案
这与您刚才提出的另一个问题非常相似。做一个约束,使一个 View 的宽度与另一个 View 的宽度相等,并使用乘数来获得您想要的比率:
NSLayoutConstraint *con = [NSLayoutConstraint constraintWithItem:self.viewA attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.viewB attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
这个约束需要添加到 View A 和 B 的父 View 中。
关于ios - Auto-Layout Constraint : When resizing, 不平均分配空间给 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188389/