gpt4 book ai didi

ios - 如何在 Swift 3 中编辑表格单元格的内容

转载 作者:搜寻专家 更新时间:2023-10-31 21:56:23 25 4
gpt4 key购买 nike

我是 Swift 3 的初学者。我有一个 TableView ,用户可以删除 TableView 单元格。现在我希望用户能够更改单元格的内容。我有一个包含四个名称 ["Stremmel"、"Emma"、"Sam"、"Daisy"] 的数组,我希望用户能够对 George 说编辑 Stremmel。
我搜索了文档或类似的问题,它们可以帮助我想出一种方法,但我变得更加困惑。有人可以给我一些帮助吗!!谢谢你。这是我的表格 View :

import UIKit
var list = ["Stremmel" , "Emma" , "Sam" , "Daisy"]
class ViewController: UITableViewController {

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return list.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = list[indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

if editingStyle == UITableViewCellEditingStyle.delete
{
list.remove(at: indexPath.row)
tableView.reloadData()
}


}

最佳答案

如果您还想显示带有删除按钮的编辑按钮,那么您需要使用canEditRowAt 方法而不是commit editingStyle 方法来实现editActionsForRowAt 方法。

之后使用 editActionsForRowAt 显示 AlertControllertextField 并更新其值并重新加载该行。因此,从您的代码中删除或注释 commit editingStyle 方法并添加以下两个方法。

override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let editAction = UITableViewRowAction(style: .default, title: "Edit", handler: { (action, indexPath) in
let alert = UIAlertController(title: "", message: "Edit list item", preferredStyle: .alert)
alert.addTextField(configurationHandler: { (textField) in
textField.text = self.list[indexPath.row]
})
alert.addAction(UIAlertAction(title: "Update", style: .default, handler: { (updateAction) in
self.list[indexPath.row] = alert.textFields!.first!.text!
self.tableView.reloadRows(at: [indexPath], with: .fade)
}))
alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
self.present(alert, animated: false)
})

let deleteAction = UITableViewRowAction(style: .default, title: "Delete", handler: { (action, indexPath) in
self.list.remove(at: indexPath.row)
tableView.reloadData()
})

return [deleteAction, editAction]
}

关于ios - 如何在 Swift 3 中编辑表格单元格的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com