代码之家  ›  专栏  ›  技术社区  ›  JsW

如何计算UILabel的高度?

  •  0
  • JsW  · 技术社区  · 7 年前


    我的问题类似于 this one .

    我使用以下代码来计算标签的高度。

    extension String {
        // the length of text in one line
        func size(ofFont font: UIFont) {
            return (self as NSString).size(attributes: [NSFontAttributeName: font])
    }
    

    在里面 cellForRow: 方法:

    let size = text.size(ofFont: font)
    let height = ceil(size.width/(UIScreen.main.bounds.width))*size.height
    


    那么,错误来了。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Berlin    7 年前

    设置 背景视图 类似约束 前导、尾随、顶部、底部、, 请出示图片。

    enter image description here

    设置 UILabel标签

    并设置其属性 numberOfLines=0

    enter image description here

    然后,您的viewController类ViewDidLoad方法编写以下代码。

    override func viewDidLoad() {
            super.viewDidLoad()
            //dynamic tablview
            yourTablview.estimatedRowHeight = 83.0
            yourTablview.rowHeight = UITableViewAutomaticDimension
        }
    

    我希望这对你有用。

        2
  •  3
  •   Phyber    7 年前

    UITableViewAutomaticDimension

    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 140
    

    numberOfLines

    cell.label.numberOfLines = 0
    

    不要忘记在所有方面设置约束