【发布时间】:2020-05-19 16:21:51
【问题描述】:
我正在编写一个个人 iOS 应用程序来跟踪一些事情。我的应用程序运行良好,但我将注意力转向整理代码和清理工作。在我的 tableview 中,其中一个单元格是 uicollectionview,根据我选择的 collectionviewcell,自定义 tableviewcell 会加载到同一个表中。此时,我的 collectionview 中有大约十几个项目,我可以从中选择,然后从大约十几个不同的 tableviewcells 中选择一个来加载。每个单元收集不同的信息位。
一切都按我的预期工作,但我不喜欢在整个 tableviewcontroller 中,我有许多基于我必须处理的 tableviewcells 的重复部分
override func viewDidLoad() {
super.viewDidLoad()
// register the various tablecells
tableView.register(UINib(nibName: "eventO2TableViewCell", bundle: nil), forCellReuseIdentifier: "eventO2TableViewCell")
...
tableView.register(UINib(nibName: "eventTmpTableViewCell", bundle: nil), forCellReuseIdentifier: "eventTmpTableViewCell")
tableView.register(UINib(nibName: "eventDXTableViewCell", bundle: nil), forCellReuseIdentifier: "eventDXTableViewCell")
同样的 cellForRowAt 非常大(即一个 switch 语句,十几个 case ,每个都有一个对应的
switch selectedIndexPath.row { // the index of the uicollectionviewcell
case 1:
let cell = tableView.dequeueReusableCell(withIdentifier: "eventTmpTableViewCell", for: indexPath) as! eventTmpTableViewCell
return cell
...
case 11:
let cell = tableView.dequeueReusableCell(withIdentifier: "eventO2TableViewCell", for: indexPath) as! eventO2TableViewCell
return cell
default:
let cell = tableView.dequeueReusableCell(withIdentifier: "eventDXTableViewCell", for: indexPath) as! eventDXTableViewCell
return cell
}
在
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
另一个带有十几个案例评估的 switch 语句来确定使用了哪个单元格并提取我需要保存的信息。
正在考虑在类似问题Is it possible to store custom UITableViewCell into Array? 中提出的想法,但好奇是否有其他建议?仍然认为自己是这个领域的初学者。谢谢
【问题讨论】:
-
也许这会对你有所帮助:medium.com/chili-labs/…
-
非常感谢您,我将查看 Medium 文章,看看如何最好地适应我的设置...
标签: ios swift uitableview