我希望缩短长字符串,结尾为“查看更多.”。
如果字符串没有新行,一切都进行得很顺利。
“猫吃了蛋糕,就出去了,没有任何问题。第二天发生了一件很糟糕的事。主人把猫赶了出去,小动物没有机会回去。”
变成了
“猫吃了蛋糕就出门了,没有任何问题。然后看到了更多的.”
但除此之外,,我想限制身高以及。这样,字符串的最大高度可以是200 So,如下所示:
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
}发布于 2019-03-24 20:48:44
我强烈建议您不要将see more...作为普通字符串放在文本中。
更好的方法是在标签之后立即使用UIButton处理see more...文本。
在这种情况下,您可以轻松地操作它的位置、形式、UI等。
https://stackoverflow.com/questions/55328215
复制相似问题