Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Рассчитать размер прямоугольника с текстом

#ios #objective_c #swift


В делегате func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath:
NSIndexPath) -> CGFloat я должен высчитать высоту моего текста в UILabel. Какими путями
мне это сделать, скажите, пожалуйста?

upd1(к первому комментарию) :

    let text = self.posts[indexPath.row]["story"]! as NSString
    let sizeOfLabel = text.boundingRectWithSize(
        CGSize(width: <>, height: Int.min),
        options: NSStringDrawingOptions.UsesLineFragmentOrigin,
        attributes: ["NSFontAttributeName":UIFont.systemFontOfSize(17)],
        context: nil)

    


Ответы

Ответ 1



Если я правильно понял, то у Вас проблема с размером UILabel в UITableView. При создании вашей UILabel в методе UITableViewDataSource нужно указать yourLabel.layoutIfNeeded(). Если это не то, опишите проблему точнее

Ответ 2



extension UILabel { func calculateHeight() -> Float { let text = self.text as NSString let size = text.sizeWithAttributes([NSFontAttributeName: self.font]) return size.height } }

Ответ 3



То, что у вас в апдейте должно работать, единственноheight не минимальный а максимальный let sizeOfLabel = text.boundingRectWithSize( CGSize(width: <>, height: DBL_MAX), options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: ["NSFontAttributeName":UIFont.systemFontOfSize(17)], context: nil)

Комментариев нет:

Отправить комментарий