MarksCode
MarksCode

Reputation: 8604

Dynamic tableViewCell height

I have a tableViewCell with a label inside that could be multiple lines tall. I've set the label's Lines property to 0. However, when I make the label's text have multiple lines the text gets cut off. Here's how I've set up my storyboard:

cell

Does anybody know how I made the table's cells just tall enough to contain the labels within?

Upvotes: 0

Views: 711

Answers (2)

dip
dip

Reputation: 3598

Setting Dynamic Cell height procedure

  1. Pin the label from top and bottom. Please refer following Screen shot

enter image description here

  1. Set numbers of line to 0 of the label as from property inspector of xcode, it can be done from code too please refer following screen shot

enter image description here

  1. Implement delegates of table view mentioned below

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
    }
    
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50 // also UITableViewAutomaticDimension can be used
    }
    

Upvotes: 3

mAu
mAu

Reputation: 2020

You are missing the bottom constraint from the label to the table view cell (as far as I can tell). In order to make autolayout know how large the height of the cell has to be, you need to supply those constraints.

In addition do not forget to provide the estimatedRowHeight to the table view. If that value is not given, automatic cell sizing will not work.

Upvotes: 0

Related Questions