tableview 的刪除一定是很常用的在應用裏! 在應用裏大多會用到3中刪除方式!
第一種滑動方式,在cell 的最右邊向右滑動cell ,默認的刪除是漢字,我們先改下語言吧!怎麼也的改成國語!
這是常用的方式!也是必須用到的方式
上一章我們設置了不出現紅色按鈕
下面設置可以出現刪除按鈕 或者直接不寫這個方法
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath
{
return UITableViewCellEditingStyleDelete;
}
/*改變刪除按鈕的title*/
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath
{
return @"刪除";
}
/*刪除用到的函數*/
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[self.arrayValue removeObjectAtIndex:[indexPath row]]; //刪除數組裏的數據
[tableview deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; //刪除對應數據的cell
}
}
第二中是在導航欄上加個刪除按鍵!爲了有的用戶不知道刪除手勢!這樣也更加明瞭
就像上一章插入的方式一樣! 只要讓tableview可以編輯就會出現刪除按鈕
UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc]initWithTitle:@"管理" style:UIBarButtonItemStyleBorderedtarget:self action:@selector(deleteAction)];
-(void)deleteAction
{
[self.tableview setEditing:!self.tableview.editing animated:YES];
if (self.tableview.editing)
{
[self.navigationItem.leftBarButtonItem setTitle:@"刪除"];
}
else
{
[self.navigationItem.leftBarButtonItem setTitle:@"管理"];
}
}
效果如下
第三種是在一個前輩博客rainbird.blog 中學到的一種批量刪除方法!
deleteDic = [[NSMutableDictionary alloc]init];
UIBarButtonItem *delBtn = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemTrashtarget:self action:@selector(delbtnClick)];
UIBarButtonItem *editBtn = [[UIBarButtonItem alloc]initWithTitle:@"編輯" style:UIBarButtonItemStyleBorderedtarget:self action:@selector(editbtnClick)];
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath
{
return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
//刪除按鈕
-(void)delbtnClick
{
[array removeObjectsInArray:[deleteDic allKeys]];
[array writeToFile:Path atomically:YES];
[self.mytableView deleteRowsAtIndexPaths:[NSArray arrayWithArray:[deleteDic allValues]] withRowAnimation:UITableViewRowAnimationFade];
[deleteDic removeAllObjects];
[array release];
}
//編輯按鈕
-(void)editbtnClick
{
if ([self.navigationItem.rightBarButtonItem.title isEqual: @"編輯"])
{
self.navigationItem.rightBarButtonItem.title = @"確定";
[self.mytableView setEditing:YES animated:YES];
}
else
{
self.navigationItem.rightBarButtonItem.title = @"編輯";
[deleteDic removeAllObjects];
[self.mytableView setEditing:NO animated:YES];
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([self.navigationItem.rightBarButtonItem.title isEqual: @"確定"])
{
[deleteDic setObject:indexPath forKey:[array objectAtIndex:indexPath.row]];
}