删除UITableViewCell没有删除按钮?

时间:2013-02-27 04:43:47

标签: iphone sdk

我需要能够在单元格上滑动,而不是显示红色"删除"按钮,显示一个AlertView询问用户是否确实要删除。

感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

您可以将gestureRecognizer添加到您的手机

    UISwipeGestureRecognizer *recognizer =[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(removeCell:)];
    recognizer.direction = UISwipeGestureRecognizerDirectionRight;
    [cell addGestureRecognizer:recognizer];
    [recognizer release];

然后在removeCell方法

  - (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer 
 {
     UITableViewCell *cell = (UITableViewCell*)[recognizer view];
     NSIndexPath* pathOfTheCell = [viewListTable indexPathForCell:cell]; 
     NSInteger rowOfTheCell = [pathOfTheCell row];
     NSInteger sectionOftheCell = [pathOfTheCell section];  

     UIAlertView *confirmationAlert = [[UIAlertView alloc]initWithTitle:@"Confirm" message:@"Are you sure you want to Delete this list?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Delete", nil];
     [confirmationAlert show];
     confirmationAlert.delegate = self;
     [confirmationAlert release];
 }

答案 1 :(得分:0)

这样做,

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {    

 UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Are you sure to commit with its action" delegate:self cancelButtonTitle:CKString(@"NO") otherButtonTitles:CKString(@"YES"),nil];
    [Alert show];
    Alert.tag=indexPath.row+1;
    Alert.delegate=self;
    [Alert release];

    return UITableViewCellAccessoryNone;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {


}

在AlertView代理

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {

        int indexPathRow=alertView.tag-1;
        if(buttonIndex==1)
        {
            //// Yes condition
        } else {
           ///// No condition
        }

}

答案 2 :(得分:0)

UISwipeGestureRecognizer添加到Cell

    UISwipeGestureRecognizer *gesture;
    gesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)] autorelease];
    gesture.direction = UISwipeGestureRecognizerDirectionLeft;
    [cell addGestureRecognizer:gesture];

    gesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)] autorelease];
    gesture.direction = UISwipeGestureRecognizerDirectionRight;
    [cell addGestureRecognizer:gesture];

内部选择器方法提示确认删除

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer 
{    

    //Use recognizer.direction to check left/right swipe if needed
    //Prompt Alert

    CGPoint location = [recognizer locationInView:tableView];
    NSIndexPath *swipedIndexPath = [tableView indexPathForRowAtPoint:location];
    UITableViewCell *swipedCell  = [tableView cellForRowAtIndexPath:swipedIndexPath];
}

答案 3 :(得分:0)

在Alertview委托

if (alertView.tag == index)
{
if (buttonIndex == 1)
{
  [yourArray removeObjectAtIndex:alertView.tag-1];
  [yourTable reloadData];
}
}