Как получить высоту строкового текста в каждой строке ячейки табличного представления? - PullRequest
0 голосов
/ 30 августа 2018

Данные поступают из API, и я хочу увеличить высоту ячейки в соответствии с высотой текста, поступающего из API. Я хочу, чтобы на моем ярлыке было больше текста, но он вырезан из-за маленькой ячейки.

enter image description here

Я сделал UItableViewAutomationDimenension, но у меня это не сработало.

Пожалуйста, скажите мне, если кто-нибудь знает. Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Поработав над этим, я нашел решение.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        if msg1[indexPath.row].messageType == "image"{
            return 185.0
        }
        else{
            let attrString = NSAttributedString(
                string: msg1[indexPath.row].message!,
                attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16)])
            let size = attrString.boundingRect(
                with: CGSize(width: 200, height: CGFloat.greatestFiniteMagnitude),
                options: NSStringDrawingOptions.usesLineFragmentOrigin, context: nil)

            return size.height + 35
        }

Таким образом, он дает результат, подобный этому:

enter image description here

В любом случае, спасибо всем за ваши ответы ... !!!

0 голосов
/ 30 августа 2018
func heightForText(string: String, width: CGFloat, font: UIFont) -> CGFloat {
    let attrString = NSAttributedString(
        string: string,
        attributes: [NSFontAttributeName: font])
    let size = attrString.boundingRect(
    with: CGSize(width: width, height: CGFloat.greatestFiniteMagnitude), 
    options: NSStringDrawingOptions.usesLineFragmentOrigin, context: nil)
    return size.height
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...