使用自动布局动态设置视图的顶部边距和高度-swift3

时间:2018-11-14 21:20:11

标签: ios autolayout xcode9 swift3.2

我正在使用3个标签的UI。全部垂直排列-

标签1

标签2

标签3

  1. 列表项一次将向用户显示两个标签。
  2. 例如,如果显示了标签1 标签3 ,那么我想将Label3向上移动到 label1 下方,并创建 Label2 高度设为0。
    1. 如果显示 Label2 Label3 ,我们必须同时向上移动标签并将label1的高度设置为0。 因此,每次topmst标签在Superview中都应具有相同的顶部边距。它可以是Label1,Label2或Label3

我应该使用堆栈视图来达到此要求吗?

使用自动布局的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以在 IBOutletCollection(NSLayoutConstraint)属性(每个方案/一组约束中一个)中将不同的方案约束分组,例如:

@property (strong, nonatomic) IBOutletCollection(NSLayoutConstraint) NSArray *scenarioNConstraints;

然后根据您的条件,可以通过执行

之类的操作来激活或停用欲望约束。
for (NSLayoutConstraint *constraint in scenarioNConstraints) {
    [constraint setActive:YES]; //or [constraint setActive:NO];
}