我有一个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调用是一个带有didSet的setup()方法,如下所示:
var viewModel: CellViewModel? {
didSet { setup() }
}
在我的设置中,我根据一些其他因素向我的单元格的bodyView添加子视图。即我可以添加图片,一些文字等。
问题是,当我将我的子视图添加到我的单元格的bodyView时,单元格的高度保持在xib中的原始高度,而不是在该点调整大小以适应新视图。我在添加子视图后尝试调用self.layoutIfNeeded()
,但没有运气。添加子视图后如何调整单元格大小?
您可以拨打tableView.beginUpdates()
,然后拨打tableView.endUpdates()
电话。中间没有任何东西。