答案 0 :(得分:0)
尽可能不要将静态细胞和动态细胞一起使用。这是一个不好的做法。这是因为,当您使用静态单元格时,tableView的dataSource设置为静态,并且根本无法更改。
但是,有一个黑客。而且,您可以同时使用静态和动态单元格。但是,你必须非常小心这样做,否则你的应用程序可能会崩溃。
待办事项清单:
<强> 1。覆盖 cellForRowAtIndexPath方法。
func tableView(_ tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// For static section i.e. 0 index
if indexPath.section == 0 {
// This returns the static cells
return super.tableView(tableView, cellForRowAtIndexPath: indexPath)
} else {
// This gives your dynamic cell
let cell = myDynamicCell()
return myDynamicCell
}
}
这里,myDynamicCell()方法是您自己创建动态单元格的方法。 此时您无法使用原型单元格,因为您已经选择了静态单元格。因此,您必须通过代码创建单元格。
注意:
请记住,您正在搞乱静态数据源。如果此时出现任何错误,Apple自行负责。
此外,此过程非常危险,尝试使用动态单元格,然后将第一部分动态设置为静态。而且,休息会很容易。这是最好的方法。我会推荐这种方法,但上述方法至今仍会有效,至少在创建新单元时是这样。