DaSilva
DaSilva

Reputation: 1358

Swipe to delete cell with strange behavior

I have an application where the main root is a UIViewController with a similar behavior like the application of facebook or path, that is, swipe and show another view, on the left or right. enter image description here

However, my problem is that sometimes the main UIViewController has UITableViewcells, which should be eliminated with swipe, yet this does not work correctly, sometimes it detects the gesture sometimes not.

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;

}

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

    [dataItems removeObjectAtIndex:indexPath.row];
    [self.tableView reloadData];

}    

}

I am adopting this library enter link description here to make the controller of the UIViewController's

Any idea how to solve this?

Thanks in advance.

Upvotes: 0

Views: 329

Answers (1)

Dustin
Dustin

Reputation: 6803

The problem is the gesture you're using. If both the table cells and view are trying to intercept swipe events you are guaranteed to not get the behavior you're looking for. The way that I usually solve this problem is to make a button that changes the table into editing mode. That way you don't have a conflict.

[tableView setEditing:YES animated:YES];

The problem isn't program design or language capabilities, it's having the EXACT SAME gesture do two DIFFERENT things. This isn't physically possible to implement and always get what you want. iOS devices can't read minds, although I heard about a new API in iOS 7...

You could try using multi-finger gestures.

Upvotes: 1

Related Questions