我有一个UITableView。我在此表中添加了一个UIGestureRecognizer,用于查找单元格上的滑动,并在检测到滑动时启用对该表的编辑。当我向右滑动时,确实可以在桌面上进行编辑。但是,当我向左滑动时,我会在单元格的右侧显示默认的红色删除按钮。如何禁用此默认行为,并使其如果向左或向右滑动,我会在任何一种方式进行编辑?
- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
foldersTable.editing=YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
UIGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[foldersTable addGestureRecognizer:recognizer];
[recognizer release];
}
答案 0 :(得分:3)
UISwipeGestureRecognizer上有一个方向属性。您可以将其设置为向右和向左滑动:
recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;
答案 1 :(得分:3)
只需在UITableViewCellEditingStyleNone
方法中返回tableView:editingStyleForRowAtIndexPath:
。
答案 2 :(得分:0)
我正在使用另一种方法来解决这个问题。
NSMutableArray *tableViewGestures = [[NSMutableArray alloc]initWithArray:[self.tableView gestureRecognizers]];
[[tableViewGestures objectAtIndex:2] setDirection:UISwipeGestureRecognizerDirectionLeft];
NSLog(@"directions %@" , [tableViewGestures objectAtIndex:2] );
NSArray *newTableViewGestures = [[NSArray alloc]initWithArray:tableViewGestures];
[self.tableView setGestureRecognizers:newTableViewGestures];
我得到了tableViewGestures NSArray并重置了它。如果我想使用SwipeGestureRecognizerDirectionRigth,我只需要再次设置方向。这很容易。对吗?