在UIViewController
中删除单元格可以通过以下步骤实现:
UIViewController
类遵循了UITableViewDelegate
和UITableViewDataSource
协议。UIViewController
类中创建一个UITableView
的实例,并将其添加到视图层级中。UITableViewDataSource
协议中的tableView(_:numberOfRowsInSection:)
方法,返回你的表格中的行数。UITableViewDataSource
协议中的tableView(_:cellForRowAt:)
方法,返回每个单元格的内容。UITableViewDelegate
协议中的tableView(_:commit:forRowAt:)
方法,在用户滑动删除单元格时执行删除操作。tableView(_:commit:forRowAt:)
方法中,你可以使用deleteRows(at:with:)
方法从数据源中删除对应的数据,并更新表格视图。以下是一个示例代码:
import UIKit
class MyViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var tableView: UITableView!
var data: [String] = ["Cell 1", "Cell 2", "Cell 3", "Cell 4"]
override func viewDidLoad() {
super.viewDidLoad()
// 创建UITableView实例
tableView = UITableView(frame: view.bounds, style: .plain)
tableView.delegate = self
tableView.dataSource = self
view.addSubview(tableView)
}
// 返回表格中的行数
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
// 返回每个单元格的内容
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
cell.textLabel?.text = data[indexPath.row]
return cell
}
// 执行删除操作
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
// 从数据源中删除对应的数据
data.remove(at: indexPath.row)
// 更新表格视图
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
}
这样,当用户滑动删除单元格时,对应的数据将从数据源中删除,并且表格视图会自动更新。
领取专属 10元无门槛券
手把手带您无忧上云