您的位置:首页 > 移动开发 > Swift

swift tableview中添加侧滑删除功能 类似qq删除

2015-05-07 11:01 495 查看
在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)
}
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息