#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)
Комментариев нет:
Отправить комментарий