tableview方法的问题func tableView(tableView:UITableView,editActionsForRowAtIndexPath indexPath:NSIndexPath) - > [UITableViewRowAction]?

时间:2016-07-02 06:29:30

标签: ios swift uitableview ios9

我正在使用方法

 func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]?
{ 
let delete = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
        //Do something
    })
    delete.backgroundColor = UIColor.redColor()

    let more = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "More" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
        //Do something
    })
    more.backgroundColor = UIColor.blueColor()

    return [delete, more]
}

我也包括

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    // you need to implement this method too or you can't swipe to display the actions
        }

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // the cells you would like the actions to appear needs to be editable
    return true
}

当我向右或向左滑动时,我创建的按钮没有显示出来。我尝试在editactionforrowatindexpath上设置覆盖,但后来我得到一个错误,说方法不会覆盖超类中的任何方法

1 个答案:

答案 0 :(得分:1)

您的实施没有任何问题。函数未被调用是因为没有正确调用委托和数据源方法。

您可以通过编程或故事板连接委托和数据源方法。

以编程方式实现tableview时需要在类声明中添加 UITableViewDataSource,UITableViewDelegate ,并使用此代码连接代理。

          yourTableView.datasource = self
          yourTableView.delegate = self

如果你是通过storyboard实现tableview,你只需要通过拖动来连接委托和数据源方法

Connect delegate and datasource methods via storyboard