【问题标题】:Problem with dynamic UITableView cell heights动态 UITableView 单元格高度的问题
【发布时间】:2021-03-19 16:39:29
【问题描述】:

我希望我的单元格具有动态高度。我使用下面的代码:

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
    }()

单元格只包含一个给定一个约束的标签——在单元格内居中:

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 行并且单元格的高度应该被拉伸。 我在上面的代码中缺少什么?谢谢

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    单元格的内容需要设置自动布局约束,以便从单元格的顶部到底部存在约束连接,以便自动尺寸工作。

    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
        }
    }
    

    【讨论】:

      【解决方案2】:

      你应该给标签 top 、 bottom 、前导和尾随约束以使高度动态

      【讨论】:

        猜你喜欢
        • 2015-08-10
        • 1970-01-01
        • 1970-01-01
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        相关资源
        最近更新 更多