我正在开发一个必须支持iOS6和iOS7的项目。我的问题是它在不同的系统上有所不同。我正在尝试使用等于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
我该如何解决?
答案 0 :(得分:3)
问题是iOS6和之前的版本不会使用自定义UIFont和NSLineBreakByTruncatingTail更新多行UILabel,但您可以使用自动调整大小或自动布局来存档相同的结果。
答案 1 :(得分:3)
Swift 2.1
yourLabel.text = "your text"
yourLabel.numberOfLines = 0
yourLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
yourLabel.sizeToFit()
答案 2 :(得分:3)
我知道这是一个老问题,但我最近遇到了同样的问题。我发现有了约束,我必须设置首选宽度才能让省略号正常运行:
yourLabel.preferredMaxLayoutWidth = width;