调用editActionsForRowAtIndexPath但是当UITableViewCell滑动时没有显示操作按钮

时间:2015-06-24 11:02:17

标签: ios swift uitableview tableviewcell uitableviewrowaction

我实现了editActionsForRowAtIndexPath和commitEditingStyle滑动工作但UITableViewCell上没有显示任何操作按钮

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {  

    let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Delete" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in  
          // I did some work here  
    })  

    return [deleteAction]  
}  

有没有人知道如何在滑动时显示动作按钮? (目前,单元格滑动但背后是白色背景,没有操作按钮。同样点击此白色背景也不会引起任何反应)

注意:我在另一个ViewController中实现了editActionsForRowAtIndexPath,它可以工作。 (操作按钮既显示又响应点击事件)

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在我的情况下,我意识到我的自定义单元格是用于表视图的宽泛方式。我注意到这一点,因为配件没有显示。一旦我在iPad模拟器上运行它,我就看到了按钮。

答案 1 :(得分:0)

此处的事件应为commitEditingStyle,以使用滑动按钮操作

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if (editingStyle == UITableViewCellEditingStyle.Delete) {
            // handle delete (by removing the data from your array and updating the tableview)
        }
}

答案 2 :(得分:0)

commitEditingStyle为空,因为滑动需要它。 editActionsForRowAtIndexPath已实现,这在一个viewController中有效,但不适用于另一个

代码如下

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

    }


func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {

    let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Delete" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
        //some code here
    })


    return [deleteAction]
}