如何防止两个标签重叠,但具有动态宽度?

Posted

技术标签:

【中文标题】如何防止两个标签重叠,但具有动态宽度?【英文标题】:How do I keep two labels from overlapping, but have a dynamic width? 【发布时间】:2017-11-30 17:02:54 【问题描述】:

我在UICollectionViewCell 的两侧有两个标签,它们都具有动态宽度。如下面的屏幕截图所示,“Cream Cheese”和“$15.79”由于它们的动态宽度而自动重叠。

我想保留这两个标签的动态宽度,但如果两者接触,我希望UICollectionViewCell 右侧的标签成为首选标签。这意味着右侧标签的宽度会根据右侧标签的动态宽度最小化。有谁知道有什么方法可以做到这一点?

【问题讨论】:

忘记为此使用约束。你应该使用堆栈视图 【参考方案1】:

如果您是通过Interface Builder 执行此操作,则两个标签之间应该有水平间距约束...

...并为右侧的标签赋予更高的内容压缩阻力

这样,它会扩展,并且较长的标签将具有较短的宽度,正如您所期望的那样。

【讨论】:

这看起来可行,但它们并没有达到预期的结果,而是保持相同的宽度。

以上是关于如何防止两个标签重叠,但具有动态宽度?的主要内容,如果未能解决你的问题,请参考以下文章

如何动态调整 UITableViewCell 内的两个文本标签宽度?

无法在具有动态宽度的 Tablecell 中并排自动布局两个 UILabel

如何防止imageview重叠?

具有比例宽度和文本驱动高度的动态 UILabel

如何使用自动布局将两个具有动态高度的 UILabel 与 UICollectionViewCell 的底部对齐

显示具有动态尺寸的标签,如表格而不重叠