在 willDisplay 中配置自定尺寸单元格
Posted
技术标签:
【中文标题】在 willDisplay 中配置自定尺寸单元格【英文标题】:Configure self sizing cell inside willDisplay 【发布时间】:2017-08-28 09:08:36 【问题描述】:我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
时,它都会起作用。任何想法为什么会发生这种情况?这有点奇怪。
提前致谢!
【问题讨论】:
【参考方案1】:目前还不清楚这似乎是什么问题,但请尝试, 首先用安全的方法替换此方法:
case is ComponentType:
return tableView.dequeueReusableCell(withIdentifier: "checkboxCell") as! ComponentTypeCell
tableView.dequeueReusableCell(type: "checkboxCell", forIndexPath: indexPath)
如果你没有,也包括这个:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44
【讨论】:
以上是关于在 willDisplay 中配置自定尺寸单元格的主要内容,如果未能解决你的问题,请参考以下文章
如何在 willDisplay 单元格回调中访问 UICollectionView 中的特定单元格