如何使用自动布局更改标签位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用自动布局更改标签位置相关的知识,希望对你有一定的参考价值。
我有两个标签并排“Label 1”和“Label 2”。如果“标签1”内容不可用,则“标签2”替换“标签1”位置。有没有人知道如何使用自动布局?
为了尝试目的,我已经确定了两个标签的高度和重量。 “标签1”具有前导和前8个像素边距,而“标签2”具有0个像素用于前导和8个像素用于顶部。将“标签1”大小设置为“0”,隐藏“标签1”但它不起作用。
删除两个标签的宽度约束,并根据您的要求(从尺寸检查器)更新(设置)标签的压缩/拥抱优先级。
通过删除宽度约束,您的问题将得到解决,但autoLayout可能会显示内容显示优先级的冲突,因为您的两个标签都位于水平位于同一行(点)。要解决此冲突,您需要更新两个标签中任何一个的压缩/拥抱优先级。
现在,当任何一个(或两个)标签文本都没有值时,为它设置nil值,因此其框架(空格)将自动被其他标签占用。如果两个标签文本都具有零值,则两者都将消失(自动将其宽度设置为零)。
如果两个标签都具有固定宽度,请为两个标签设置恒定宽度。设置Lable2前导空格相对于label1为'0'。将NSLayoutConstraint
添加到Label1宽度。现在以编程方式发现Lable1内容为空时,将其宽度布局约束设置为“0”。 Lable2将自动向左移动并位于Label1的位置。
您需要创建Label2宽度约束的IBOutlet
,您需要检查Label1的内容。如果您发现它为空,则需要将其设置为零并调用layoutIfNeeded
重置视图框。
如果您不想使用压缩/拥抱属性。然后,您可以在stackview中嵌入标签,并在没有内容时隐藏标签。
当我隐藏label1时
不需要约束:)
以上是关于如何使用自动布局更改标签位置的主要内容,如果未能解决你的问题,请参考以下文章
Swift - UICollectionView:如何在标题中自动布局标签间距
ios - 如何使用ios swift中的自动布局以编程方式将两个标签并排放置在中心位置?