我有一个UITableView,通过设置它可以根据内容动态增长:
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension
我的UITableView由headerView和bodyView组成,设置后在其中插入其他子视图。
我用以下rx设置了单元格:
viewModel
.map { $0.cellViewModels }
.bind(to: tableView.rx.items(cellIdentifier: "MyCell", cellType: MyCell.self)) { [unowned self] (row, viewModel, cell) in
cell.viewModel = viewModel
// Tried adding the following with no luck:
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
.disposed(by: disposeBag)
单元格的viewModel调用是一个setup()方法,其方法是didSet,如下所示:
var viewModel: CellViewModel? {
didSet { setup() }
}
在我的设置中,我会根据其他一些因素将子视图添加到单元格的bodyView中。即我可以添加图片,一些文字等。
问题是,当我将子视图添加到单元格的bodyView时,单元格的高度保持在xib中的原始高度,并且此时不调整大小以适应新视图。添加子视图后,我尝试调用self.layoutIfNeeded()
,但是没有运气。向其添加子视图后如何调整单元格的大小?
答案 0 :(得分:1)
您可以先致电tableView.beginUpdates()
,然后再致电tableView.endUpdates()
。之间没有任何东西。