我有一个UILabel,其最大行数为2,并包含自动换行属性。这是在故事板中完成的。
我需要在那些最终被自动换行的标签上的最后一个包装词之后添加一个'...'。
这可能吗?我尝试过来自互联网的一些解决方案,但它们似乎没有用。其中包括:
答案 0 :(得分:1)
我想我明白你要做什么。这有点草率,但它应该工作
extension UILabel {
func truncateAndFitText()
{
if let string = self.text
{
let words = string.components(separatedBy: " ")
var lastString = ""
var tempString = ""
for word in words
{
(tempString == "") ? tempString.append(word) : tempString.append(" \(word)")
let size: CGSize = tempString.size(attributes: [NSFontAttributeName: self.font])
if (size.width > (self.bounds.size.width * CGFloat(self.numberOfLines)))
{
lastString.append("...")
break
}
else
{
lastString = tempString
}
}
self.text = lastString
}
}
}
然后像
一样使用它myLabel.truncateAndFitText