我需要能够在单元格上滑动,而不是显示红色"删除"按钮,显示一个AlertView询问用户是否确实要删除。
感谢任何帮助!
答案 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];
}
}