如何找到 "sizeToFit" 标签的高度?

How can you find the height of a label that is "sizeToFit"?

我有一个包含可变大小字符串的标签。标签嵌入固定宽度的垂直堆栈中。

   var productName: UILabel = {
        let lbl = UILabel()
        lbl.translatesAutoresizingMaskIntoConstraints = false
        lbl.numberOfLines = 0
        lbl.sizeToFit()
        lbl.textColor = .black
        lbl.font = UIFont(name: "HelveticaNeue", size: 13)
        lbl.textAlignment = .center
        return lbl
    }()


    var Vstack: UIStackView = {
        let stack = UIStackView()
        stack.axis = .vertical
        stack.alignment = .center
        return stack
    }()

我需要这个标签在插入文本后的高度,因为它决定了它所在的 tableViewCell 的大小。由于它包含的字符串是可变的,而标签本身是 "sizeToFit",我一直无法用第一个想到的东西来计算它的高度:

productName.frame.height 
productName.frame.size.height
productName.layer.frame.height

有没有办法在插入文本后获取标签的高度?

您可以使用 intrinsicContentSize,其中 returns UILabel 元素的标签文本的 CGSize,

您可以在这篇文章中阅读更多相关信息:intrinsicContentSize