iOS UITableviewCell的刪除

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]];

    }




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章