第四章 滑动删除

本项目是《beginning iOS8 programming with swift》中的项目学习笔记==》全部笔记目录

------------------------------------------------------------------------------------------------------------------

1.    实现下面的方法,自动打开滑动删除功能:

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

2. 自定义右滑菜单项

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {
    // 分享项
    let shareAction = UITableViewRowAction(style: .Default, title: "Share") { (action, indexPath) -> Void in
        // 选择分享目标
        let shareMenu = UIAlertController(title: nil, message: "Share using", preferredStyle: .ActionSheet)
       
        let twitterAction = UIAlertAction(title: "Twitter", style: .Default, handler: nil)
        let facebookAction = UIAlertAction(title: "Facebook", style: .Default, handler: nil)
        let emailAction = UIAlertAction(title: "Emain", style: .Default, handler: nil)
        let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
       
        shareMenu.addAction(twitterAction)
        shareMenu.addAction(facebookAction)
        shareMenu.addAction(emailAction)
        shareMenu.addAction(cancelAction)
       
        self.presentViewController(shareMenu, animated: true, completion: nil)
    }
   
    // 删除项(实现了这个方法需要自己写删除项)
    let deleteAction = UITableViewRowAction(style: .Default, title: "Delete") { (action, indexPath) -> Void in
        // 从数据源中删除
        // ...
       
        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    }
   
    // 设置背景色
    shareAction.backgroundColor = UIColor.orangeColor()
    deleteAction.backgroundColor = UIColor.blueColor()
   
    return [shareAction, deleteAction]
}

效果图:

posted @ 2015-02-27 15:47  唐小喵  阅读(1743)  评论(0编辑  收藏  举报