我有一条线UILabel.它有宽度=屏幕宽度,现在的内容是(内容UILabel可以改变)
你有30秒的时间在面试中留下印象
目前,我UILabel的尾部被截断,"持续时间"这个词并不完整
self.nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;
Run Code Online (Sandbox Code Playgroud)
我想要的是我想要我UILabel 仍然截断的尾巴,只显示完整的单词.
如下图所示
任何帮助或建议将非常感谢.
你可以这样做:
let labelWidth = CGRectGetWidth(label.bounds)
let str = "You will have 30 seconds till you give us a good impression" as NSString
let words = str.componentsSeparatedByString(" ")
var newStr = "" as NSString
for word in words{
let statement = "\(newStr) \(word) ..." as NSString
let size = statement.sizeWithAttributes([NSFontAttributeName:label.font])
if size.width < labelWidth {
newStr = "\(newStr) \(word)"
}
else{
break
}
}
newStr = newStr.stringByAppendingString(" ...")
self.label.text = newStr as String
Run Code Online (Sandbox Code Playgroud)
想法是:我们拆分单词并尝试检查宽度,同时从开头附加字符串“...”,直到找到超出大小的单词,以防我们停止并使用这个新字符串
| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |