UILabel-自动换行文本

是否有任何方法可以根据需要使用标签换行文本?我已经将换行符设置为单词换行符,并且标签足够高以容纳两行,但是看起来它只会在换行符上换行。我是否需要添加折线来正确包装?我只是想把它包起来,如果水平放不下的话。

110358 次浏览

如果将 numberOfLines设置为0(标签设置为单词换行) ,标签将自动换行,并根据需要使用尽可能多的行。

如果你在 IB 中编辑一个 UILabel,你可以通过按 option + return键来输入多行文本来得到一个换行符——单独按 return键就可以完成编辑。

UILabel有一个属性 lineBreakMode,您可以根据需要设置它。

在 Swift 中,你会这样做:

    label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.numberOfLines = 0

(请注意,lineBreakMode 常量的工作方式与 ObjecC 中的不同)

Xcode 10 Swift 4

包装标签的文本也可以通过选择标签和使用属性检查器在故事板上完成。

= < em > 0 换行

enter image description here

Xcode 12.5.1 Swift 5.

我发现,即使我有 行 = 0换行 = 换字符集,它仍然没有包装的长标签文本。仔细检查 IB 中的标签约束(或者任何设置它们的地方)。

我发现有时 IB 会尝试修复约束设置,并为前缘和后缘添加 > = 或 < = 约束。

此标签约束将不包装文本:

enter image description here


但这个会:

enter image description here

注意第一张图片中 Label.尾部边缘的 > = 。将其设置为 = ,文本应该换行。