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作为另一个答案。