5

我有这样的看法

 _______________________________
|     |                         |
|  Label 0                      |
|     ^                         |
|  Label 1                      |
|     ^                         |
|  Label 2                      |
|     ^                         |
|  Label N                      |
|_______________________________|

^Label X+1代表连接顶部与底部的约束Label XLabel 0被约束到具有固定常数的超级视图的顶部。

我想要实现的是:如果有些Label X是空的,那么Label X+1必须取而代之。

 _______________________________
|     |                         |
|  Label 0 (empty)              |
|     ^                         |
|  Label 1                      |
|     ^                         |
|  Label 2                      |
|     ^                         |
|  Label N                      |
|_______________________________|
               |
               |   The new layout
              \ /
 _______________________________
|     |                         |
|  Label 1                      |  (here it is also Label 0 but is empty)
|     ^                         |
|  Label 2                      |
|     ^                         |
|  Label N                      |
|_______________________________|

这可以通过自动布局实现,还是我必须以编程方式检查空虚以手动更新约束?

免责声明:如果这个问题听起来很基本,请原谅,我正在从弹簧和支柱迁移,现在它是一个相当批评的问题。

4

1 回答 1

2

内容可见时是否需要更改?如果不试试这个:你可以在 viewWillAppear 方法中进行更新。对于每个标签,调用

[firstLabel setNumberOfLines:0];
 [firstLabel setText:newProductTitleText];
 [firstLabel sizeToFit];

将行数设置为 0 可让标签根据需要动态使用多行。如果这是一个实际上应该变成 0 行的空标签。这将更新框架和自动布局应该照顾其余的。

于 2013-07-04T18:05:26.267 回答