在斯威夫特扩展蜂窝3
问题描述:
我试图实现使用this在斯威夫特扩展蜂窝3
这里的扩展蜂窝是我heightForRowAt indexPath
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
switch indexPath.row {
case 0 : return 70
case 1 :
let cell = self.tableView(tableView, cellForRowAt: indexPath)
if let datePickerCell = cell as? MyDatePickerCell {
return datePickerCell.datePickerHeight()
}
return 260
case 2 : return 80
default : return 60
}
}
该应用程序被卡在
let cell = self.tableView(tableView, cellForRowAt: indexPath)
的UITableView
是嵌入模式UIViewController
为什么是t他的发生?
答
我认为发生的事情是你的tableView在你首先加载它们之前寻找你的单元格的高度。所以你试图在加载之前检索单元格,导致崩溃。
要解决此问题,您可以在加载tableView并在heightForCell中使用该单元格之前创建一个虚拟单元。这更适用于计算每个单元格的变量高度。在这种情况下,可能会硬编码起始高度,然后在此之后使用该单元格作为高度。
由于表格嵌入在VC中,您是否在使用委托? – Shades
tableview是'MyDatePickerCell'委托人 – Carpsen90
但是该类是UIViewController?你的桌子有电源插座吗? – Shades