带有numberOfLines和lineBreakMode的UILabel

我正在开发一个支持iOS6和iOS7的项目。 我的问题是它在不同的系统上工作不同。 我试图创build线数等于2的UILabel,但是当我将它设置为换行符模式到NSLineBreakByTruncatingTail它工作不同。

说明(numberOfLines = 2,text = @“long teeexxxttt”):

iOS7 iOS6 NSLineBreakByWordWrapping ---------- ---------- |long | |long | |teeeexxxtt| |teeeexxxtt| ---------- ---------- NSLineBreakByTruncatingTail ---------- ---------- |long | |long te...| |teeeexx...| | | ---------- ---------- ^ ^ | | correct incorrect - shows only one line 

我如何解决它?

我知道这是一个古老的问题,但我最近有同样的问题。 我发现,在约束条件下,我必须设置首选宽度以使省略号正确运行:

 yourLabel.preferredMaxLayoutWidth = width; 

UILable.preferredMaxLayoutWidth

问题是iOS6,以前不会用自定义的UIFont和NSLineBreakByTruncatingTail更新多行UILabel,但是可以使用自动调整或自动布局归档相同的结果。

Swift 2.1

 yourLabel.text = "your text" yourLabel.numberOfLines = 0 yourLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping yourLabel.sizeToFit()