你可以按照如下步骤遍历 viewModel.voiceList 数组,找到符合条件的 voiceItem,修改其属性,然后使用 tableView 的 reloadRows(at:with:) 方法刷新对应的单元格。
// 遍历 viewModel.voiceList 找到 voiceId == "A" 的元素
if let indexToModify = viewModel.voiceList.firstIndex(where: { $0.voiceId == "A" }) {
// 修改找到的元素的 name 属性
viewModel.voiceList[indexToModify].name = "NewName"
// 创建对应的 IndexPath
let indexPathToReload = IndexPath(row: indexToModify, section: 0)
// 刷新 tableView 单元格
tableView.reloadRows(at: [indexPathToReload], with: .automatic)
}
在这个例子中,firstIndex(where:) 方法用于找到符合条件的第一个元素的索引。如果找到了匹配的元素,就可以通过索引访问 viewModel.voiceList 中的元素,并修改其属性。然后,使用 reloadRows(at:with:) 方法刷新对应的单元格。
请确保修改数组中的元素后,调用 reloadRows 方法之前,数组和 tableView 的数据保持同步。这样可以确保 tableView 显示的数据与实际数据保持一致。
网友评论