如何使标签在另一个标签的前导约束之前显示多行?

How to make a label display multiple lines before the leading constraint of another label?

我正在做一本学习 iOS 开发的书的作业。赋值要求table单元格左上角的名称标签在名称过长时可以显示多行,且不能超出最右侧值标签的前导约束像这样的同一个单元格:

除了其他常用的约束外,我在名称标签上添加了尾随约束,它等于值标签的尾随约束,如下所示:

而 运行 结果如下:

名称标签文本 运行 超出了值标签文本的顶部。

我也试过在名称标签和值标签之间添加一个水平的space,但是编译器报告了约束冲突。你能告诉我应该怎么做才能使它正确吗?

非常感谢!

如果您输入的内容正确,那么您的问题是您将名称标签的尾随锚点设置为与值标签的尾随锚点相等。这意味着每个标签的右边缘必须相等。你不想要那个。系统可能打破了您的约束并制造了自己的怪异行为,这导致了不良行为。

将名称标签的尾随锚点设置为等于值标签的 前导 锚点减去某个常量(您想要的任何填充)。

您可以通过编程方式执行类似的操作

nameButton.translatesAutoresizingMaskIntoConstraints = false
nameButton.trailingAnchor.constraint(equalTo: valueButton.leadingAnchor, constant: -10)

如果您必须使用情节提要(我通常不建议这样做),我想这个或其他一些教程页面会告诉您如何操作。完全不会用storyboard.

https://www.raywenderlich.com/811496-auto-layout-tutorial-in-ios-getting-started

首先,您需要将您的名称标签尾随约束设置为您的值标签前导,如下所示

然后,如果您尝试增加名称标签的内容,它会显示如下错误

要解决此错误,请转到 View Controller View hierarchy 并更改名称标签的优先级

那么你实现了...

试过这个,希望下面是你需要的结果

final result

为了得到这个

  1. 先在单元格中插入两个标签如下

labels added

  1. 给定标题标签的顶部和前导约束

title label constraints

  1. 为了给标题和数量之间的约束(水平间距) 右键单击并按住标题标签并拖动到数量标签。它会显示一个
    弹出window如下

horizontal spacing

一旦我们 select 我们必须根据需要更改水平间距

in-order 更改 select 标题标签然后 select 尺寸检查器 来自
右 window

然后将尾部space更改为金额标签

updated value

现在为标题标签提供约束条件

  • 领先
  • 顶部
  • 数量标签的水平间距(尾随)

一旦给出,它将在约束中显示错误,因为未给出数量标签约束

接下来必须给数量标签的约束条件

  • 尾随
  • 宽度和大小
  • 单元格的垂直位置

constraints for amount label

现在尝试在标题标签中输入更大的文本值

look like one more step to complete

为了获得多行,将标题标签的行数属性值更改为0 在属性检查器中

final output