TableView操作未显示

时间:2015-06-15 01:26:40

标签: ios swift uitableview

我使用以下代码创建了一个UITableViewRowAction:

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

    var deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete", handler: {(action:UITableViewRowAction!, indexPath: NSIndexPath!) -> Void in

        })

    if editingStyle == UITableViewCellEditingStyle.Delete {

        let delegate = UIApplication.sharedApplication().delegate as! AppDelegate
        let managedContext = delegate.managedObjectContext!

        var error: NSError?

        let fetchRequest = NSFetchRequest(entityName: "Task")

        let fetchedResults = managedContext.executeFetchRequest(fetchRequest, error: &error) as! [NSManagedObject]

        managedContext.deleteObject(fetchedResults[indexPath.row])
        table.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)

    }

当我运行它时,行可以向左滑动,但没有显示按钮。

我补充说:

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

    let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete", handler: {(action:UITableViewRowAction!, indexPath: NSIndexPath!) -> Void in

    })

    deleteAction.backgroundColor = UIColor.redColor()

    return [deleteAction]
}

并删除了commitEditingStyle中的代码,但仍然没有显示。

2 个答案:

答案 0 :(得分:2)

如果您想要UITableviewRowAction,则委托方法不正确

试试这个

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

}
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {
    let action = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "First") { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
        //Do action here
    }
    action.backgroundColor = UIColor .greenColor()
      return [action]
}

截图

enter image description here

答案 1 :(得分:0)

问题解决了。

我启用了尺寸类,当我在iPhone6模拟器上运行时,向左滑动它不会显示按钮。但是,当我将模拟器更改为可调整大小的iPhone时,它显示在右侧。