Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Minimum cell height with UITableViewAutomaticDimension

Is it possible to set minimal height for cell? I use dynamic:

tableView.estimatedRowHeight = 83.0
tableView.rowHeight = UITableViewAutomaticDimension

But I need to set minimal height for cell when my news title label text is in one line.

like image 557
aaisataev Avatar asked Feb 03 '16 05:02

aaisataev


3 Answers

Have you tried creating a constraint in your custom UITableViewCell's view of height >= 60.0?

like image 86
Hytek Avatar answered Dec 28 '22 06:12

Hytek


Got it. Made it work as below.

Drag and drop a View on top of UITableViewCell and set constraints Leading, trailing, top and Bottom as 0. Set height constraint as >= ExpectedMinimumSize.

In heightForRowAtIndexPath Delegatemethod:

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
    return UITableViewAutomaticDimension;
}

In ViewDidLoad:

self.tableView.estimatedRowHeight = 60; // required value.
like image 22
YSR fan Avatar answered Dec 28 '22 07:12

YSR fan


There is a trick which is answered by @Hytek. For this you have to give the constraint for minimum height.

For example: If there is one UILabel into your table cell and you want that UILabel increase the height as per the dynamic content. And you have code it like below.

tableView.estimatedRowHeight = 83.0
tableView.rowHeight = UITableViewAutomaticDimension

It will increase your label height when content is bigger but it also will decrease when your content is small. So if you expect that label should have minimum height then you have to give a height constraint to your UILabel in a way that height >= 30.0 to your label.

enter image description here

This way your UILabel will not decrease the height less then 30.0.

like image 36
Bhavin_m Avatar answered Dec 28 '22 08:12

Bhavin_m