Ios Swift UITableView如何在滚动中保留编辑的值

Ios Swift UITableView如何在滚动中保留编辑的值,ios,swift,uitableview,Ios,Swift,Uitableview,我遵循此链接通过读取JSON数组在uitableview中生成动态字段,在该示例中,我所做的更改不是仅显示数据,而是将标签设置为可编辑,使其成为UITextField,我知道tableview会重新生成视图上下的每个单元格。我想了解如何在每个单元格中保留编辑的值。基本上,表视图应该显示数据源的数据 在您的示例中(在中间示例中),数据源的类型为ProfileViewModel,其中包含ProfileViewModelItem类型的项数组。每个单元格显示单个ProfileViewModelItem的

我遵循此链接通过读取JSON数组在uitableview中生成动态字段,在该示例中,我所做的更改不是仅显示数据,而是将标签设置为可编辑,使其成为UITextField,我知道tableview会重新生成视图上下的每个单元格。我想了解如何在每个单元格中保留编辑的值。

基本上,表视图应该显示数据源的数据

在您的示例中(在中间示例中),数据源的类型为ProfileViewModel,其中包含ProfileViewModelItem类型的项数组。每个单元格显示单个ProfileViewModelItem的数据

保留编辑值的方法是更改由正在编辑其文本字段的单元格显示的项目


因此,每次用户在文本字段中键入内容时,都应该更改项目(ProfileViewModelItem)中的数据,该项目包含文本字段显示的文本。这样,文本字段和项目是同步的,如果单元格消失,当它回到屏幕上时,文本字段将显示与项目中相同的文本,这与单元格上次出现在屏幕上时文本字段中最后出现的文本相同。

我建议为每个文本字段实现UITextFieldDelegate。这样,您可以在输入最新值时将其保存到某个数据模型中。您应该使用委托/协议模型或Swift闭包。以下是一个例子: