我总是认为有一个非常简单,独立的示例很好,这样在我学习新任务时就不会做任何假设。答案是删除UITableView行。该项目的执行如下:
该项目基于Swift的UITableView示例。
创建一个新项目并替换ViewController.swift代码如下。
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { // 这些字符串将成为表视图单元格的数据 var animals: [String] = ["Horse", "Cow", "Camel", "Pig", "Sheep", "Goat"] let cellReuseIdentifier = "cell" @IBOutlet var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // 可以在Interface Builder中执行以下三件事 // 而不是使用代码(如果您愿意)。 self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier) tableView.delegate= self tableView.dataSource= self } // 表格视图中的行数 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.animals.count } // 为每个表格视图行创建一个单元格 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier(cellReuseIdentifier) as UITableViewCell! cell.textLabel?.text = self.animals[indexPath.row] return cell } // 点击表视图单元格时运行的方法 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { print("You tapped cell number \(indexPath.row).") } // 此方法处理行删除 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == .Delete { // 从数据模型中删除项目 animals.removeAtIndex(indexPath.row) // 删除表格视图行 tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) } else if editingStyle == .Insert { // 在我们的示例中未使用,但是如果要添加新行,则在此处进行操作。 } } }
上面代码中允许行删除的单键方法是最后一个。这里再次强调:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == .Delete { // 从数据模型中删除项目 animals.removeAtIndex(indexPath.row) // 删除表格视图行 tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) } }
将UITableView添加到情节提要中的视图控制器。使用“自动布局”将表视图的四边固定到视图控制器的边缘。控制从序列图像板中的表视图拖动到@ibvar tableView:UITableView!代码中的行。
就这样。您现在应该可以运行您的应用并通过向左滑动并点击“删除”来删除行。
仅在iOS 8中可用。有关更多详细信息,请参见此答案。
如果您需要更改显示的按钮数量或按钮文本,请参阅此答案以获取更多详细信息