Search code examples
swiftxcodeswift3uitableview

Swift, Auto Resize Custom Table View Cells


In my app, I have a table view with an image, label and text view in each cell. I would like to be able to auto-resize the cells depending on the amount of content in the text view. (The text view is the lower most text.)

So far, I have added the correct constraints; leading, trailing, top and bottom to the text view and have disabled scrolling and editing.

In my tableViewController.swift file, I have written this code:

override func viewWillAppear(_ animated: Bool) { tableView.estimatedRowHeight = 100 tableView.rowHeight = UITableViewAutomaticDimension }

However, this is not working as when I add more text to the text view, it just cuts off.

Maybe this has something to do with the card like look, I have got a UIView in each cell acting as a card.

I honestly don't know what I am doing wrong

A picture is below of what my app looks like and if anyone could help that would be greatly appreciated

enter image description here


Solution

  • Check if your constraints are like this(based on your image) :

    imageView : set to Top and Leading of your container, with fix height and width values.

    label : you can set it to top and horizontal space of your image, with fix height and width as well.

    textView : leading to image, top space to label, trailing and bottom to container.

    And keep using

    tableView.estimatedRowHeight = 100
            tableView.rowHeight = UITableViewAutomaticDimension
    

    in your viewWillAppear()