Я пытаюсь вычислить высоту метки, чтобы я мог динамически установить высоту ее ячейки.Это работает нормально, как это:
let commentText = itemsFeed[indexPath.item].comment
let commentRect = NSString(string: commentText!).boundingRect(with:CGSize(width: rectWidth, height: 1000), options: NSStringDrawingOptions.usesFontLeading.union(NSStringDrawingOptions.usesLineFragmentOrigin), attributes: [NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 16)], context: nil)
let commentHeight = ceil(commentRect.height)
Это возвращает все правильные значения, и я могу динамически установить высоту на основе commentHeight.
Однако, когда я не добавляю комментарий,Я хотел бы вернуть 0 для commentHeight, но вместо этого Swift возвращает 20 (высота по умолчанию для метки в одну строку).Как я могу переопределить это?
Я пытался добавить оператор if, подобный этому:
if(commentText?.isEmpty)! {
let commentHeight = 0
} else {
let commentText = itemsFeed[indexPath.item].comment
let commentRect = NSString(string: commentText!).boundingRect(with:CGSize(width: rectWidth, height: 1000), options: NSStringDrawingOptions.usesFontLeading.union(NSStringDrawingOptions.usesLineFragmentOrigin), attributes: [NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 16)], context: nil)
let commentHeight = ceil(commentRect.height)
}
Но это возвращает Использование неразрешенного идентификатора 'commentHeight' ввозврат моего CGSize (где вызывается commentHeight).
Любые советы или рекомендации о том, как этого добиться, так что commentHeight будет 0, если нет текста?
(Весь код представленнаходится внутри метода sizeForItemAt)