在 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 有自动调整大小的单元格,cellForRowAtwillDisplay 之间的区别在于:如果在我的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 中的特定单元格

如何在 UITableView 单元格中创建自定尺寸网格?

如何设置自定尺寸单元 iOS8

嵌入在 UICollectionViewCell 中的自定尺寸 UITableView

IOS - 自定尺寸单元问题

自定尺寸单元格高度变化导致跳跃动画