MiMo MiMo - 2 months ago 9
iOS Question

Resizing UITableView to fit content

I am creating an app which will have a question in a

UILabel
and a multiple choice answers displayed in
UITableView
, each row showing a multiple choice. Questions and answers will vary, so I need this
UITableView
to be dynamic in height.

I would like to find a
sizeToFit
work around for the table. Where the table's frame is set to the height of all it's content.

Can anyone advise on how I can achieve this?

Answer

Actually I found the answer myself.

I just create a new CGRect for the tableView.frame with the height of table.contentSize.height

That sets the height of the UITableView to the height of its content. Since the code modifies the UI, do not forget to run it in the main thread:

dispatch_async(dispatch_get_main_queue(), ^{
        //This code will run in the main thread:
        CGRect frame = self.tableView.frame;
        frame.size.height = self.tableView.contentSize.height;
        self.tableView.frame = frame;
    });