Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自动布局:某些视图为空时自动更新约束_Ios_Autolayout - Fatal编程技术网

Ios 自动布局:某些视图为空时自动更新约束

Ios 自动布局:某些视图为空时自动更新约束,ios,autolayout,Ios,Autolayout,我有这样的看法 _______________________________ | | | | Label 0 | | ^ | | Label 1 | | ^ | | Label 2 | |

我有这样的看法

 _______________________________
|     |                         |
|  Label 0                      |
|     ^                         |
|  Label 1                      |
|     ^                         |
|  Label 2                      |
|     ^                         |
|  Label N                      |
|_______________________________|
^
表示将
标签X+1的顶部与
标签X的底部链接的约束<代码>标签0
用固定常量约束到superview的顶部

我试图实现的是:如果某个
标签X
是空的,那么
标签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                      |
|_______________________________|
自动布局是否可以实现这一点,或者我是否必须通过编程检查空值来手动更新约束


免责声明:如果这个问题听起来很基本,请原谅,我正在从springs和struts迁移,目前这是一个相当抽象的问题。

当内容可见时是否需要更改?如果没有,请尝试以下操作:您可以在ViewWillAppeard方法中执行更新。对于每个标签,请调用

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

将“行数”设置为0可使标签根据需要动态使用多行。如果这是一个空标签,实际上应该变成0行。这将更新框架,自动布局将处理其余部分。

您在形成此问题方面做得非常好。:)+1。标签的高度为0,但标签上的上边距仍然保留。在我看来,这是个坏主意,因为它破坏了可访问性,我会使用UIStackView作为另一个答案。