我想缩短长字符串,并以结尾“看到更多...” 。
如果字符串没有换行,一切都会顺利进行。
“猫吃掉了蛋糕,走了出去,没有任何东西 问题。然后第二天发生了一件非常糟糕的事情。主人把猫踢了出去,那只小动物没有机会回去。”
成为
“猫吃掉了蛋糕,走了出去,没有任何东西 问题。然后查看更多... ”
但是除此之外,我也想限制高度。这样,字符串的最大高度就可以达到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
}
答案 0 :(得分:1)
我强烈建议您不要在文本中放入see more...
作为纯字符串。
更好的方法是在标记后立即使用UIButton
文本see more...
。
在这种情况下,您可以轻松地控制其位置,表单,UI等