UITableView Automatic Dimension Not Working Correctly

Don't make the bottom constraint greater than or equal to just set it like the top constraint. Take away the estimatedHeightForRowAt and heightForRowAt functions. Your view did load declarations are sufficient. When you reload data also call self.view.layoutIfNeeded


I usually set the automatic height dimension and then do a reload in the viewDidLoad like this

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 44

    tableView.reloadData()   
}

Suggest to check

  1. automatic row height is enabled inside the table cell enter image description here

  2. check if the label is expandable and its bottom constraint is set to superview. Adding screenshot showing list of constraints of a sample cell I am using with dynamic height.

enter image description here

  1. Even if this doesn't fix your issue, suggest to reset all constraints and set it again for your cell.