Когда вы вызываете свойство отложенной переменной, оно инициализирует экземпляр вашего tableView.
Я думаю, вам следует создать экземпляр tableView в виде глобальной переменной, подобной этой:
class MainViewController: UIViewController {
lazy var mainTV : UITableView = {
let mainTableView = UITableView()
mainTableView.delegate = self
mainTableView.dataSource = self
mainTableView.register(MainTableViewCell.self, forCellReuseIdentifier: cellId)
mainTableView.rowHeight = 1000
return tv
}()
}
И затем (в функции cellForRowAt):
mainTableView.rowHeight = 12345
Надеюсь, этот ответ сработает для вас.
edit: Если вы хотите создать табличное представление с динамической высотой строки, вы должны установить;
tableView.estimatedRowHeight // whatever you want
tableView.rowHeight = UITableView.automaticDimension