在UITableViewDelegate 中继承三个方法
func tableView(tableView:UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool
func tableView(tableView:UITableView, editingStyleForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCellEditingStyle
func tableView(tableView:UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
然后分别在三分方法中添加业务逻辑。
<pre name="code" class="objc"><pre name="code" class="plain">//mark 设置可以进行编辑
func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool{
println("mark 设置可以进行编辑")
return true
}
// mark 设置编辑的样式
func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle{
println("mark 设置编辑的样式")
return UITableViewCellEditingStyle.Delete
}
//删除cell
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
println("删除cell")
if editingStyle == UITableViewCellEditingStyle.Delete{
//1,从本地数据库将数据移除
//调用dbhelper中的delete方法删除cocodata中的数据
dbhelper.deleteConversationBySay(conlist[indexPath.row].say)
conlist.removeAtIndex(indexPath.row)
//2.reload
//直接使用reload方法界面的变化非常迅速,用户体验非常不好
//tv.reloadData()
//这个具有动画效果
self.tv.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}