2014-12-19 87 views
0

我正在使用SWRevealViewController用于侧面菜单。加载的UIViewController包含一个UITableView。表格视图有滑动删除启用。但是,编辑功能始终不起作用。即tableView:commitEditingStyle:不会被解雇。虽然它发生了几次尝试。我认为手势识别器存在冲突。已经有一天了。有人可以帮助我吗?幻灯片删除UITableViewCell不能正常工作

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

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSUInteger row = [indexPath row]; 
    NSUInteger count = [self.shopListArray count]; 
    if (row < count) { 
     [[[self.shopListArray objectAtIndex:indexPath.section] objectForKey:IFRecipe_ingredient] removeObjectAtIndex:row]; 
    } 
    [self.shopListTableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

手势发生冲突时该怎么办?

+0

用相关代码更新您的问题。 – rmaddy 2014-12-19 04:40:11

+0

我很确定SWRevealViewController不会工作,UISlider也会:) – arturdev 2014-12-19 11:40:50

回答

0

在代码中设置UITableViewCellEditingStyle

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
return UITableViewCellEditingStyleDelete; 
} 

和问题与SWRevealViewController潘手势识别器,在上海华含有平移手势识别器,我们得到的tableview swibe识别问题来看,除去潘手势SWRevealViewController和检查。

+0

这是默认的,如果没有实现。 – rmaddy 2014-12-19 04:59:51

+0

我也用过这个。但徒劳无益。上面的代码工作正常,如果我不使用SWRevealViewController。 – Ragdoll 2014-12-19 05:17:50

0

为了启用表视图编辑方式,可以在UITableView的调用编辑方法, 在viewdidloadviewwillappear

// try this 

[self.tableView setEditing:YES animated:YES]; 

再经过ü可以轻松做到这一点。

+0

但在上述情况下。它显示单元格中的减号。我想实现幻灯片删除。 – Ragdoll 2014-12-19 05:21:55

0

试试这个,

首先在您的负载方法或需要时进行tableview编辑模式YES。

[self.tableView setEditing:YES animated:YES];

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

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return UITableViewCellEditingStyleDelete; 
} 

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { 
    return NO; 
} 
+0

仍显示减号。 – Ragdoll 2014-12-19 05:42:14

0

发现从这个https://stackoverflow.com/a/25987204/4376612解决post.Solved我的问题。必须使用以下代码,

- (BOOL)revealControllerPanGestureShouldBegin:(SWRevealViewController *)revealController 
{ 
    float velocity = [revealController.panGestureRecognizer velocityInView:self.view].x; 
    if (velocity < 0 && self.revealViewController.frontViewPosition == FrontViewPositionLeft) 
     return NO; 
    else 
     return YES; 
}