Swift 4,iOS如何在添加字符串值后检测标签高度

Swift 4,iOS如何在添加字符串值后检测标签高度,ios,label,swift4,cell,Ios,Label,Swift4,Cell,在UICollectionView中,我的单元格大小必须为150+label.height。现在我使用自定义布局来计算高度=150,如果图像存在于ImageView中,如果不是高度=100。这很容易。但当我不知道将从Api获取什么文本时,如何计算label.height?有什么函数可以得到它吗 斯威夫特 let photoHeight = delegate.collectionView(collectionView, heightForPhotoAtIndexPath: indexPath) &

在UICollectionView中,我的单元格大小必须为150+label.height。现在我使用自定义布局来计算高度=150,如果图像存在于ImageView中,如果不是高度=100。这很容易。但当我不知道将从Api获取什么文本时,如何计算label.height?有什么函数可以得到它吗

斯威夫特

let photoHeight = delegate.collectionView(collectionView, heightForPhotoAtIndexPath: indexPath) > 0 ? 150 : 100
let height = cellPadding * 2 + CGFloat(photoHeight) + (labelHeight??????)

您可以使用下面的函数计算标签高度

extension UILabel {

    func heightToFitContent() -> CGFloat {

        self.numberOfLines = 0
        self.lineBreakMode = NSLineBreakMode.byWordWrapping
        let maximumLabelSize : CGSize = CGSize(width: self.frame.size.width, height: CGFloat.greatestFiniteMagnitude)
        let expectedLabelSize : CGSize = self.sizeThatFits(maximumLabelSize);


        self.sizeToFit()

        return expectedLabelSize.height
    }
}

在UI线程中调用此函数。希望这有帮助。

你应该考虑使用自动布局有自我大小的细胞自我是UIABELL,我需要在我的情况下的间距。