Размер текста в SwiftUI
У меня есть текст (который может состоять как из одной буквы, так и из большого количества строк). Как можно узнать и записать в переменную высоту и ширину всего текста?
Ответы (1 шт):
Автор решения: Данька Храповицкий
→ Ссылка
Вот код, если размер и высоты, и ширины неизвестен:
func labelSize(for text: String) -> CGSize {
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.systemFont(ofSize: 17)
]
let attributedText = NSAttributedString(string: text, attributes: attributes)
let constraintBox = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
let rect = attributedText.boundingRect(with: constraintBox, options: [.usesLineFragmentOrigin, .usesFontLeading], context: nil).integral
return rect.size
}
Если известна ширина или длина, то надо в параметрах функции добавить известную величину и подставить ее в constraintBox