为啥标签的高度为零?

Posted

技术标签:

【中文标题】为啥标签的高度为零?【英文标题】:Why label's height is zero?为什么标签的高度为零? 【发布时间】:2016-12-12 03:52:03 【问题描述】:
contentLabel.preferredMaxLayoutWidth = kScreenWidth - 20
contentLabel.numberOfLines = 0

我使用 SnapKit 设置顶部和左侧。

 contentLabel.snp.makeConstraints  (make) in
  make.top.equalTo(topView.snp.bottom)
  make.left.equalTo(topView.iconView)

print(contentLabel.frame.size.height)

打印 0。可以吗?

【问题讨论】:

【参考方案1】:

您可以在 Swift 3 中通过此函数获取标签高度:

func GetheightOfLable(strLable:String , widthlable:CGFloat) -> CGFloat

    let rectDetail:CGRect = strLable.boundingRect(with: CGSize(width: widthlable, height: CGFloat(MAXFLOAT)), options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName:UIFont.systemFontSize], context: nil)
    print(rectDetail.height)
    return rectDetail.height

【讨论】:

【参考方案2】:

你可以试试这个,我想它会帮助你

let sizeToFit = CGSize(width: contentLabel.frame.size.width,
                       height: CGFloat.greatestFiniteMagnitude)
let textSize = contentLabel.sizeThatFits(sizeToFit)

希望对你有帮助

【讨论】:

以上是关于为啥标签的高度为零?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 P 标签不占用行的整个高度?

为啥高度参数在标签小部件中不起作用?

当单元格的高度略微增长时,为啥我的标签不遵守我的自动布局约束?

浮动清除

响应式设计:为啥高度为零和 padding-bottom 可以使 div 响应大小?

为啥父 UIStackView 无法识别子 StackView 的高度?