滑动即可删除UITableViewCell

时间:2015-09-11 20:47:05

标签: ios swift uitableview

我正在尝试在UITableViewCell中创建“轻扫以删除”。我尝试了以下代码:

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
{

}

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?
{
    var delete = UITableViewRowAction(style: .Normal, title: "Delete", handler: { (action:UITableViewRowAction!, indexPath: NSIndexPath!) -> Void in
        self.tableView.deleteRowsAtIndexPaths(indexPath, withRowAnimation: .Automatic) // Error
    })
}

但是我在创建delete rowAction

的行中遇到以下错误
  

找不到会员'正常'

我做错了什么,我该如何解决?

更新1

我试着UITableViewRowActionStyle.Normal正如@rmaddy指出的那样。

但出现以下错误:

Cannot find an initializer for type 'UITableViewRowAction' that accepts an argument list of type '(style: UITableViewRowActionStyle, title: String, handler: (UITableViewRowAction!, NSIndexPath!) -> Void)'

我在delete var之后得到了这个,并没有给我一个错误。它工作正常:

var action = UITableViewRowAction(style: .Normal, title: "action", handler: { (action:UITableViewRowAction!, indexPath: NSIndexPath!) -> Void in
        println("Action")
})

更新2

刚刚意识到这个问题。当我插入以下操作时:

self.tableView.deleteRowsAtIndexPaths(indexPath, withRowAnimation: .Automatic)

我收到错误。当我删除该行时,错误就会消失。

1 个答案:

答案 0 :(得分:1)

更改此

self.tableView.deleteRowsAtIndexPaths(indexPath, withRowAnimation: .Automatic)

TO 因为该方法需要一个indexPath数组

self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)