iOS 自动布局约束:忽略隐藏或零尺寸视图?

Posted

技术标签:

【中文标题】iOS 自动布局约束:忽略隐藏或零尺寸视图?【英文标题】:iOS auto-layout constraints: ignore hidden or zero-size view? 【发布时间】:2013-10-25 04:47:17 【问题描述】:

我需要横向布局两个标签和一个图片:

[label1]-10-[icon]-10-[label2]

问题是当label1 没有文本(即空文本)时,左边缘和icon 之间仍有10 pts 间距。

我目前的做法是,每当我设置任何标签的文本时,我都会删除所有约束并重新添加它们,并且间距取决于文本。这显然效率不高,因为标签位于可以重复使用的单元格中,因此每次重复使用单元格时,都会删除并重新应用约束。

接下来我要尝试的是,为label1icon 设置一个专用约束,所以每次设置label1 的文本时,我都会添加或删除专用约束。

我也想知道有没有更好的方法来做到这一点?如果它从根本上改变了我的布局方式,那很好。

谢谢

【问题讨论】:

其实,你想做什么? @PradhyumanChavda 我正在寻找一种在执行自动布局约束时忽略带有空文本的标签的方法,而无需删除/重新添加约束。 【参考方案1】:
    将 label1 放入视图中 在 label1 的右边缘和视图的右边缘之间设置 10px 间距 设置约束[the view]-0-[icon]-10-[label2]

【讨论】:

这将如何解决问题?如果你解释你的答案,人们就会知道你在想什么......

以上是关于iOS 自动布局约束:忽略隐藏或零尺寸视图?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 以编程方式生成的视图具有隐藏的约束,导致与自动布局发生冲突

启用自动布局的 iOS 调整视图大小

iOS 视图高度和自动布局

需要实现自动布局约束和 SizeClasses?

子视图控制器的视图忽略自动布局约束

AutoLayout(自动布局)