如何在Swift中创建动态大小的UITableViewCell?

时间:2016-04-21 13:43:48

标签: ios swift uitableview

我正在尝试以编程方式创建具有动态大小和视图的表。问题是自动高度不起作用。当我创建具有更多视图的单元格时,如何确保单元格高度保持正确。

以下是它的样子: Here is what it looks like:

这是我的代码:

import SnapKit
class FeedTableViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 500
        tableView.allowsSelection = false
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("appDataCell", forIndexPath: indexPath) as! AppDataTableViewCell
        let view =  cell.inner
        cell.ivLogo.kf_setImageWithURL(NSURL(string: "http://creativosestrategicos.com/wp-content/uploads/2015/08/sample-logo-black16-300x58.png")!)
        cell.tvLabel.text = "Post Title"


        let label = UILabel()
        label.text = "Test"
        view.addSubview(label)
        label.snp_makeConstraints { (make) in
            make.top.equalTo(view)
            make.left.equalTo(view)
            make.right.equalTo(view)
        }

        return cell
    }
}

这是我的故事板: Here is my storyboard

2 个答案:

答案 0 :(得分:0)

你应该覆盖高度方法

 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 100 /// 100 is your value here
    }

答案 1 :(得分:0)

您正在使用错误的委托方法使用tableView:estimatedHeightForRowAtIndexPath:并返回UITableViewAutomaticDimension.This仅在您给出正确的约束时才有效