介绍

上节我们说到了如何实现单元格删除的功能,但是很多时候我们需要更多复杂的功能,而不仅仅是删除这样的简单操作,例如QQ好友列表中的置顶等功能,这时候我们就需要进行自定义RowAction

实现

要自定义RowAction,我们需要实现

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

注意:实现这个方法会使得自带的删除功能失效,需要重写
首先创建一个UITableViewRowAction

利用其构造器

public convenience init(style: UITableViewRowActionStyle, title: String?, handler: (UITableViewRowAction, NSIndexPath) -> Void)

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
    let shareAction = UITableViewRowAction(style: .Normal, title: "Share") { (action, indexPath) -> Void in
        let alert = UIAlertController(title: "Share", message: "taped Share Action", preferredStyle: .Alert)
        let cancel = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
        alert.addAction(cancel)
        self.presentViewController(alert, animated: true, completion: nil)
    }
    return [shareAction]
}

图片描述
图片描述


Hydrogen
2.5k 声望73 粉丝

Write code for fun.