我想缩短长串,结尾是“看到更多......”。
如果字符串没有新行,一切顺利。
“猫吃了蛋糕,走出屋外,没有任何问题。第二天发生了一件非常糟糕的事情。主人将猫踢出去,小动物没有机会回去。”
变
“猫吃了蛋糕,走出屋外,没有任何问题。然后看到更多......”
但除此之外,我还想限制身高。这样字符串的高度最大可达200pt,如下所示:
2条新线
>
1条新线
3条新线
>
>
0新线
应该成为
2条新线
>
1条新线
看更多...
我怎样才能确定,我应该在哪个字符后加上“查看更多...”文字?
码:
func shorten(maxWidth : CGFloat) -> NSMutableAttributedString {
let font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
// If height is more than 200pt
if self.height(withConstrainedWidth: maxWidth, font: font) > 200 {
// Here.. how?
return finalString
}
// If char is more than 400
if self.count > 400 {
// BLA BLA CUT TEXT
return finalString
}
let finalString = NSMutableAttributedString(string: self, attributes: [NSAttributedString.Key.font : font])
return finalString
}
我强烈建议你不要将see more...
作为普通字符串放入文本中。
更好的方法是在标记后立即使用UIButton
文本see more...
。
在这种情况下,您可以轻松地操纵它的位置,形式,UI等