如何从具有多个单元格原型的 UITableView 中捕获单元格数据?
Posted
技术标签:
【中文标题】如何从具有多个单元格原型的 UITableView 中捕获单元格数据?【英文标题】:How to capture cell data from UITableView with multiple cell prototypes? 【发布时间】:2019-05-13 02:54:34 【问题描述】:我设计了一个包含 3 个不同单元格原型的 UITableView。我试图弄清楚如何捕获他们的用户输入。其中一个有一个嵌套表格视图形式的清单,所以我需要他们选择的那些。另一个有一个 UIPickerView,所以我需要从 PickerView 中选择的选项。最后一个是文本区域,所以我需要在其中输入字符串。
因此,当用户向上或向下滚动以使其再次可见时,我不仅需要一种机制来捕获数据并用他们的输入重新填充它。最好的选择是使用以下委托函数来捕获不可见的单元格:
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
// do something with the cell before it gets deallocated
然后在表单提交时捕获可见单元格上的数据?我不确定这种方法是否可行,所以我想知道是否有更好的选择。
表单输入数据将是 1 到第 2 节及以上部分的自重复单元格的多个部分,因此我需要一种方法来捕获所有输入数据,并使用 TableView 使这些单元格出列。
【问题讨论】:
我会考虑使用委托从单元实现更新模型,而不是尝试调用“向下”到单元实现。 听起来你正在创建一个表单来捕获用户输入。您可能要考虑使用Eureka
,它是一个非常好的表单库。
@Koh 我已经创建了我的自定义表格视图单元格。我只需要从所有单元格中提取用户输入,但是当您向下滚动时它们会出列,所以我现在主要关心的是从每个单元格中获取用户输入
【参考方案1】:
你的方法是错误的。
当用户在 view 中更改某些内容时,您必须实现一个逻辑来更新数据模型强>。
这可以通过协议/委托或回调闭包来完成。
【讨论】:
那么当用户检查列表中的项目、从选择器中选择以及将文本添加到文本区域时,如何初始化和更新数据模型。 正如我所说,在IBAction
或textDidEndEditing
委托方法中调用的协议/委托或回调闭包以上是关于如何从具有多个单元格原型的 UITableView 中捕获单元格数据?的主要内容,如果未能解决你的问题,请参考以下文章
XCUITest:从具有多个单元格原型的多个单元格标识符中选择一个 CollectionView 单元格
1 个 JSON 键,具有多个值,每个值分隔成 uitableview 单元格