左侧滑动时的UITableViewCell不会触发editActionsForRowAtIndexPath

时间:2016-11-16 16:16:06

标签: objective-c uitableview uiscrollview uitapgesturerecognizer uiswipegesturerecognizer

我有一个包含不同子视图的scrollview,其中一个是tableview。我还在滚动视图上初始化了UITapGestureRecognizerUISwipeGestureRecognizer。 tableview使用nib初始化其单元格。

我想要做的是,当我向左滑动单元格时,我想要一个按钮来滑动。我可以在向左滑动单元格时触发我的处理程序。问题是它没有触发editActionsForRowAtIndexPath我在哪里处理代码来创建一个按钮。

相反,它转到editingStyleForRowAtIndexPath并结束执行,在单元格的左侧显示一个带有减号的红色图标。

我的滑动处理程序及相关代码如下:

- (void)swipeLeftDirection:(UIGestureRecognizer*)gesture
{
    if (!tblInviteesTable.editing)
    {
        CGPoint location = [gesture locationInView: tblInviteesTable];
        iPath = [tblInviteesTable indexPathForRowAtPoint:location];
       // quitEditing = NO;

        OpenHouseTableViewCell *currentCell = (OpenHouseTableViewCell *)[self tableView:tblInviteesTable cellForRowAtIndexPath:iPath];
        [currentCell setEditing:YES];

        [tblInviteesTable setEditing:YES animated:YES];
        [self tableView:tblInviteesTable editActionsForRowAtIndexPath:iPath];
    }}

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

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

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        NSLog(@"Handled editing style! %ld", (long)editingStyle);


    } else {
        NSLog(@"Unhandled editing style! %ld", (long)editingStyle);
    }
}
-(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([tableView isEqual: tblInviteesTable]){
    UITableViewRowAction *button = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Resend" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
        NSLog(@"Resending email");
       // [_delegate listingAgentsView: self selected: indexPath];

    }];
    button.backgroundColor = [UIColor redColor];

    return @[button];
}
return @[];
}

非常感谢任何帮助。

0 个答案:

没有答案