ogre
ogre

Reputation: 59

How to make the height of tableviewcell self-adaption to the text-label in it?

I am creating a TableViewController, now there's some cells in it, the longth of texts in these cells are not the same, so I wanna make the height of the cells self-adaption to the text-label.

I was thinking to creat the label first, then set the height of cell to fix it, but it seems not work, here is the code.

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    let cell = tableView.cellForRowAtIndexPath(indexPath) as! FuckGFWQATableViewCell
    return cell.question.bounds.height
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("fuckGFWQATableViewCellId", forIndexPath: indexPath) as! FuckGFWQATableViewCell

    cell.question.numberOfLines = 0
    cell.question.text = fuckGFWQuestions[indexPath.section]


    return cell
}

But when the heightForRowAtIndexPath called, the label was not exist. What should I do?

Upvotes: 0

Views: 71

Answers (1)

Sabrican Ozan
Sabrican Ozan

Reputation: 738

With iOS8 you can use self sizing cells in UITableView.Checkout here. You do not need to calculate your UILabel's height and set your cell. You just need to :

tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension

Upvotes: 1

Related Questions