簡體   English   中英

動態 UITableView 單元高度問題

[英]Problem with dynamic UITableView cell heights

我希望我的單元格具有動態高度。 我使用下面的代碼:

let tableView: UITableView = {
        let view = UITableView()
        view.register(MyTableViewCell.self, forCellReuseIdentifier: MyTableViewCell.reuseIdentifier)
        view.rowHeight = UITableView.automaticDimension
        view.estimatedRowHeight = 150
        view.separatorStyle = .singleLine
        view.isScrollEnabled = true
        return view
    }()

該單元格僅包含 label ,它被賦予一個約束 - 在單元格內居中:

private func setupView() {
        addSubview(titleLabel)
        titleLabel.snp.makeConstraints { maker in
            maker.center.equalToSuperview()
        }
    }

標簽的定義:

let titleLabel: UILabel = {
        let label = UILabel()
        label.textColor = .black
        label.textAlignment = .center
        label.numberOfLines = 0
        return label
    }()

然后在 cellForRowAt 方法中分配標簽的文本,但在每種情況下都會返回相同的高度,即使文本有時是 4 行並且單元格的高度應該被拉伸。 我在上面的代碼中缺少什么? 謝謝

您應該給 label 頂部、底部、前導和尾隨約束以使高度動態

單元格的內容需要設置自動布局約束,以便從單元格的頂部到底部存在約束連接,以便自動尺寸工作。

private func setupView() {
    addSubview(titleLabel)
    titleLabel.snp.makeConstraints { maker in
        maker.edges.equalToSuperview()

        //or add .top, .left, .right, .bottom constraints individually, 
        //if you need to add .offset() to each of the sides
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM