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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 4,iOS如何在添加字符串值后检测标签高度相关的知识,希望对你有一定的参考价值。

在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??????)
答案

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

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

以上是关于Swift 4,iOS如何在添加字符串值后检测标签高度的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift ios中的自定义TableView单元格中显示多个字符串值到多个标签?

iOS Swift标签栏控制器以编程方式添加项目(新标签)

如何使用 Swift 在 iOS 中检测多行键盘粘贴事件?

ios swift custom uitablecell如何放置几个项目(标签,图片)

变量显示为 nil - swift 4 IOS

如何在一组值后添加特定字符串