UILabel文本截断与文本中的换行符

我有一个UILabel作为titleView放在导航栏中。 我想它有2行,其中第一行可以被截断,第二行是中心alignment。

在代码中,它看起来更像这样:

let label = UILabel() let text = NSAttributedString(string: "Long long long text\nsecond line") label.attributedText = text label.textAlignment = .Center label.numberOfLines = 0 label.lineBreakMode = .ByTruncatingTail label.sizeToFit() self.navigationItem.titleView = label 

第一行文字不超过可用空间的效果如下: 在这里输入图像说明

到现在为止还挺好。

第一行文字较长时出现问题:

 let text = NSAttributedString(string: "Very very very very very long text\nsecond line") 

和效果: 在这里输入图像说明

我想达到的是:

在这里输入图像说明

任何想法如何可以做到? 我尝试了numberOfLines和lineBreakMode,但没有得到满意的结果。

将您的行分隔ByTruncatingMiddle更改为ByTruncatingMiddle而不是ByTruncatingTail 。 像下面的东西,

  label.lineBreakMode = .ByTruncatingMiddle 

希望这会帮助:)