Ios 自动布局:UILabel无法使用长文本正确调整大小

Ios 自动布局:UILabel无法使用长文本正确调整大小,ios,autolayout,uilabel,Ios,Autolayout,Uilabel,我有一个UITableViewCell和两个UILabels:标题和说明 我的标题标签有问题。基本上,我想增加它的高度,如果文本大于可用空间,并防止“…”。这就是它的外观,您可以在右侧看到标题标签的约束 如您所见,标题标签成功地增加了其高度,但文本仍在一行中。“文本样式-标注”中使用的字体。有什么建议吗 编辑1:我已将行数设置为“0” 编辑2:我通过删除UILabel并再次添加它来修复此问题,但首先看一下Wojtek提出的建议。自动布局打开时支持此行为,方法是对相关UILabel执行以下步骤

我有一个
UITableViewCell
和两个
UILabel
s:标题和说明

我的标题标签有问题。基本上,我想增加它的高度,如果文本大于可用空间,并防止“…”。这就是它的外观,您可以在右侧看到标题标签的约束

如您所见,标题标签成功地增加了其高度,但文本仍在一行中。“文本样式-标注”中使用的字体。有什么建议吗

编辑1:我已将行数设置为“0”


编辑2:我通过删除
UILabel
并再次添加它来修复此问题,但首先看一下Wojtek提出的建议。

自动布局打开时支持此行为,方法是对相关UILabel执行以下步骤

  • 在实用程序窗格>属性检查器中将行数设置为“0”

  • 右键单击UILabel并将Alt-control(Xcode 7.1及更高版本)拖动到其superview以设置前导、尾随、上下边距

  • 对于“自动高度和宽度”,您可以将约束的优先级设置为“600”级,关系为“大于或等于”

  • Github示例(在下面的示例中,我仅对底部约束使用不同的“关系”。您也可以选择对不同的约束(即特定情况下的尾部约束)执行此操作):


    您可以在设置标签内容后执行
    yourLabel.sizeToFit()
    。@ClaudioRedi谢谢,已经这样做了,并且得到了相同的结果。您可能需要在UILabel上设置preferredMaxLayoutWidth,以便它知道何时包装。看起来约束取决于标签的-intrinsicContentSize,除非您告诉它必须从何处开始换行,否则这将始终是一行(因为它需要计算出来才能生成约束,进而定义框架)。如果它只是一个标签,只需给出前导和尾随以及高度,在
    sizeToFit
    之后执行
    yourLabel.updateConstraints()
    时,不要给出任何宽度约束。自动布局对我来说仍然是一个噩梦,所以如果没有帮助,我道歉对不起,没有工作。我忘了提到我已经将行数设置为0,我将添加到主帖子。设置顶部约束(唯一缺少的约束)没有效果。@estemendoza是否使用自动布局?@estemendoza是否将换行设置为“换行”?不,我在“截断尾”中使用了它,这就是为什么它显示“…”但我改为尝试,得到了相同的结果。@estemendoza可能会尝试先用一个UILabel和正确的约束(前导、尾随、底部、顶部)来测试它。并确保在编程方面没有与约束冲突的内容。