Я хотел бы укоротить длинные строки с окончанием "см. Подробнее ..." .
Все идет хорошо, если в строке нет новыхлинии.
"Кот съел торт и без проблем вышел из дома. Затем на следующий день случилось что-то действительно плохое. Хозяин выгнал кота и маленькое животноеу меня не было возможности вернуться назад. "
становится
" Кот съел торт и без проблем вышел из дома. Затем увидеть больше..."
Но помимо этого, Я бы хотел также ограничить высоту .Так что длина строки может быть не более 200pt, например:
2 новых строки
>
1 новая строка
3 newстроки
>
>
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
}