【问题标题】:UILabel find height that fits widthUILabel 找到适合宽度的高度
【发布时间】:2018-12-08 21:59:59
【问题描述】:

我有一个UILabel,我需要有一个特定的文本大小和框架宽度(与屏幕宽度相匹配)。我希望能够将标签的高度设置为适合所有标签文本的最小高度,而不会将其切断。

我尝试了以下方法:

let label = UILabel()
label.text = longText
label.numberOfLines = 0
label.sizeToFit()

但如果longText 类似于"This string is really long, longer than the screen width",这将不起作用,因为sizeToFit 将整个字符串放在一行中,当到达屏幕宽度时,文本会被... 截断。

然后我在调用sizeToFit 后尝试设置标签的宽度以匹配屏幕宽度。这让换行但不调整标签的高度,所以字符串在第一行之后仍然被切断。

另外,设置label.adjustsFontSizeToFitWidth = true 也不起作用,因为我需要标签具有特定的字体大小。

我想要的是某种函数,例如label.minimumHeightForWidth:,我可以将UIScreen.main.bounds.width 作为宽度参数传递,并获得一个高度,该高度将在给定宽度的情况下根据需要在尽可能多的行上适合标签的文本范围。有可能做这样的事情吗?

【问题讨论】:

    标签: ios swift uilabel


    【解决方案1】:

    你可以试试

    let fixedWidth = UIScreen.main.bounds.width 
    let newSize = lbl.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
    lbl.size = CGSize(width:fixedWidth, height: newSize.height)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多