0

我正在开发一个有 3 个标签的 UI。都是垂直排列的——

标签 1

标签 2

标签 3

  1. 列表项 一次将向用户显示任意两个标签。
  2. 例如,如果显示了标签 1标签 3,那么我想将标签 3 上移到标签 1 的下方,并使标签2的高度为 0。
    1. 如果显示了Label2Label3,我们必须向上移动标签并将 label1 的高度设置为 0。所以每次 topmst 标签都应该与 superview 具有相同的上边距。它可以是 Label1、Label2 或 Label3

我应该使用堆栈视图来实现这个要求吗?

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

4

1 回答 1

0

您可以在IBOutletCollection(NSLayoutConstraint)属性(每个场景/一组约束一个)中对不同的场景约束进行分组,例如:

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

然后根据您的条件,您可以通过执行类似的操作来激活或停用欲望约束

for (NSLayoutConstraint *constraint in scenarioNConstraints) {
    [constraint setActive:YES]; //or [constraint setActive:NO];
}
于 2018-11-15T15:54:27.330 回答