Как создать статические ячейки с динамической высотой ячеек с помощью Swift

Я посмотрел несколько уроков, которые показывают, как установить динамическую высоту ячеек, но все они показывают это, только если вы используете динамические ячейки, устанавливая соответствующие ограничения и используяUITableViewAutomaticDimension, Тем не менее, я хотел бы сделать это для статических ячеек.

В моем приложении есть контроллер табличного представления, который содержит несколько ячеек, в которых отображается категория с индикатором раскрытия, в котором есть заголовок, а затем описание и размер текста описания. Таким образом, я хотел бы, чтобы высота ячейки была динамической в ​​соответствии с размером текста описания.

Причина, по которой я использую статические ячейки, а не динамические ячейки, заключается в том, что над ячейками категорий у меня есть несколько ячеек с некоторыми дизайнами, которые я мог бы получить только с помощью статических ячеек и раскадровки.

я используюiOS9, Xcode 7.3 а такжеSwift 2.2

ОБНОВИТЬ

Код контроллера табличного представления

import UIKit

class CategoriesTableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 140
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplet,e implementation, return the number of rows
        return 2
    }

}

ОБНОВЛЕНИЕ 2

В соответствии с принятым ответом ниже, я добавил два метода ниже в мой контроллер табличного представления и удалил 2 строки, которые у меня были в viewDidLoad (). Это сделало это для меня! Имейте в виду, что мне нужно было убедиться, что все метки в каждой ячейке использовали ограничение сверху, снизу, впереди и сзади. Кроме того, количество строк для каждой метки должно быть установлено на 0.

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

Ответы на вопрос(4)

Ваш ответ на вопрос