当文本太长时,在文本的中间而不是在结尾时,如何添加UIlabel的三个点?

时间:2017-08-28 21:29:54

标签: ios uilabel

例如,我有以下两个字符串:“如何在窗口中播放小鸟?”“S22 - E7”。我想在标签中出现以下内容:“如何在...... S22-E7中小鸟?”如果字符串根据标签尺寸太大而不适合它“。你怎么看,三个点总是放在第一个字符串中,第二个字符串总是显示为满。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以将UILabel的ParagraphStyle LineBreakMode设置为byTruncatingMiddle,这在大多数情况下可能会使用精心规划的标签尺寸。来自文档:

  

显示该行,以便开头和结尾适合容器,中间的缺失文本由省略号字形表示。此模式用于单行布局

如果要保证“S22-E7”字符串的 none 被截断,您可以使用两个标签进行更多控制并设置布局约束,以便保留受保护标签的宽度,以便它可以尽可能显示完整的字符串,但在大多数情况下这可能是过度的。

如果根据检测到给定宽度和字体可见的字符数而手动操作显示的字符串,则可能会发现this answer有用,如果决定采用不同的路线。

答案 1 :(得分:0)

以下是如何做到的。

yourlabel.adjustsFontSizeToFitWidth = false
yourlabel.lineBreakMode = .byTruncatingMiddle