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

问题描述 投票:0回答:1

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

customLayout.swift

let photoHeight = delegate.collectionView(collectionView, heightForPhotoAtIndexPath: indexPath) > 0 ? 150 : 100
let height = cellPadding * 2 + CGFloat(photoHeight) + (labelHeight??????)
ios label swift4 cell
1个回答
1
投票

您可以使用以下功能计算标签高度

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线程中调用此函数。希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.