我UITableViewDataSrouce
看起来像:
我将cellForRowAt
内的单元格取消:
...
case is ComponentType:
return tableView.dequeueReusableCell(withIdentifier: "checkboxCell") as! ComponentTypeCell
...
在willDisplay
内配置数据单元格:
...
case is ComponentType:
guard let cell = cell as? ComponentTypeCell else { return }
cell.configure(with: model, at: indexPath)
...
问题出在哪里?我的UITableView
具有自行调整大小的单元格,cellForRowAt
和willDisplay
之间的区别在于:如果在我的configure(...)
方法中,我有:
titleLabel.text = "Something"
并且调用将在willDisplay
内部,如上所述,它不会显示任何文本,并且单元格将具有默认大小。当我将呼叫交换到cellForRowAt
时,它将起作用。任何想法为什么会发生这种情况?这有点威胁。
提前致谢!
答案 0 :(得分:0)
目前还不是很清楚这似乎是什么问题,但试试看, 首先用安全的方法替换这个方法:
case is ComponentType:
return tableView.dequeueReusableCell(withIdentifier: "checkboxCell") as! ComponentTypeCell
tableView.dequeueReusableCell(type: "checkboxCell", forIndexPath: indexPath)
如果你还没有,还包括这个:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44