【问题标题】:How make custom UITableViewCell with dynamic height?如何制作具有动态高度的自定义 UITableViewCell?
【发布时间】:2018-06-10 17:12:34
【问题描述】:

我的目标是制作这样的屏幕:

这是我使用 StackView 和 Labels 实现的屏幕。 但现在,我想用 UITableView 来做到这一点。我的问题是 Cells 需要是动态的。因为文本可能与其他文本不同。 所以我开始用你的xib文件创建一个UITableViewCell(背景灰色是设计的)

Swift 文件

class CellCreateSaleVC: UITableViewCell {


    @IBOutlet weak var lblInfo: UILabel!
    @IBOutlet weak var imgClipboard: UIImageView!
    @IBOutlet weak var lblNomeCampo: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)


    }

}

带有 UITableView 的 ViewController

class CreateSaleViewController : UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableViewMenu: UITableView!
    let options : Int = 12


    override func viewDidLoad() {

        tableViewMenu.dataSource = self
        tableViewMenu.delegate = self
        tableViewMenu.register(UINib(nibName: "CellCreateSaleVC", bundle: nil), forCellReuseIdentifier: "CellCreateSale")

    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return options
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "CellCreateSale") as! CellCreateSaleVC
        return cell
    }

}

但我的结果是这样的:

【问题讨论】:

标签: ios swift xcode uitableview


【解决方案1】:

对于动态高度 TableViewCell 你需要使用self-sizing table view cells,你必须将表格视图的rowHeight属性设置为UITableViewAutomaticDimension。您还必须为 estimatedRowHeight 属性赋值。

tableView.estimatedRowHeight = 85.0
tableView.rowHeight = UITableViewAutomaticDimension

要定义单元格的高度,请为单元格的视图添加从到底部边缘的约束。如果您的视图具有内在的内容高度,系统将使用这些值。如果没有,您必须向视图或内容视图本身添加适当的高度约束。

注意:

此外,尽量使估计的行高尽可能准确 可能的。系统计算滚动条高度等项目 基于这些估计。估计越准确,越 无缝的用户体验。

请参阅this 出色的堆栈溢出答案,了解如何使用自动布局来实现动态单元格高度。和 raywendelich.com tutorial 在自定义大小的 tableview 单元格上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多