带有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()