Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 滑动以删除UITableViewCell不工作_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 滑动以删除UITableViewCell不工作

Ios 滑动以删除UITableViewCell不工作,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我正在使用SWRevealViewController作为侧菜单。加载的UIViewController包含UITableView。表视图已启用要删除的幻灯片。但是,编辑功能并不总是有效。i、 e,tableView:committeeditingstyle:不会被解雇。虽然它发生在几次尝试之后。我认为手势识别器中存在冲突。我已经做了一天了。有人能帮我吗 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSInd

我正在使用SWRevealViewController作为侧菜单。加载的UIViewController包含UITableView。表视图已启用要删除的幻灯片。但是,编辑功能并不总是有效。i、 e,tableView:committeeditingstyle:不会被解雇。虽然它发生在几次尝试之后。我认为手势识别器中存在冲突。我已经做了一天了。有人能帮我吗

- (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];
}
-(BOOL)tableView:(UITableView*)tableView canEditRowAtIndexPath:(nsindepath*)indepath
{
返回YES;
}
-(void)tableView:(UITableView*)tableView提交的编辑样式:(UITableViewCellEditingStyle)行的编辑样式索引路径:(NSIndexPath*)索引路径
{
NSUTEGER行=[indexPath行];
NSU整数计数=[self.shopListArray计数];
如果(行<计数){
[[[self.shopListArray objectAtIndex:indexath.section]objectForKey:IFRecipe\u component]removeObjectAtIndex:row];
}
[self.shopListTableView deleteRowsAtIndexPaths:@[indexPath]带RowAnimation:UITableViewRowAnimationFade];
}

当手势出现冲突时,我该怎么办

在代码中设置
UITableViewCellEditingStyle

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

SWRevealViewController中的平移手势识别器存在问题,在superview包含平移手势识别器中,我们在视图中看到tableview swibe识别器问题,在SWRevealViewController中删除平移手势并进行检查。

为了启用表视图的编辑模式,您可以调用UITableView上的编辑方法,如下所示:, 在
viewdiload
视图中将出现

// try this

[self.tableView setEditing:YES animated:YES];
然后你就可以很容易地做到这一点。

试试这个

首先,在did load方法上或在需要时将tableview编辑模式设置为“是”。

[self.tableView设置编辑:是动画:是]

- (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;
}

从这篇文章中找到了解决方案。解决了我的问题。必须使用以下代码

- (BOOL)revealControllerPanGestureShouldBegin:(SWRevealViewController *)revealController
{
    float velocity = [revealController.panGestureRecognizer velocityInView:self.view].x;
    if (velocity < 0 && self.revealViewController.frontViewPosition == FrontViewPositionLeft)
        return NO;
    else
        return YES;
}
-(BOOL)revealController测试应开始:(SWRevealViewController*)revealController
{
浮动速度=[revealController.PangestureRecognitor速度视图:self.view].x;
如果(速度<0&&self.revealViewController.frontViewPosition==FrontViewPositionLeft)
返回否;
其他的
返回YES;
}

用相关代码更新您的问题。我很确定SWRevealViewController不会工作,也会使用UISlider:)如果没有实现,这是默认值。我也使用了这个。但这是徒劳的。如果我不使用SWRevealViewController,上面的代码可以正常工作。但是在上面的情况下。它在单元格中显示负号。我想实现幻灯片删除。