UITableViewCell滑动但删除按钮不会出现

Ali*_*Ali 1 objective-c uitableview ios-simulator

这很奇怪.我正在iPad模拟器中刷UITableViewCell.即使下面的事件触发并且swipedCell不是nil,也不会出现"删除"按钮.实际上,它似乎 - 但有时只是.我从来没有得到过糟糕的访问或sigbart.

这是代码:

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer 
{   
    if (userListSwipeRightRecognizer.state == UIGestureRecognizerStateEnded) {
        CGPoint swipeLocation = [userListSwipeRightRecognizer locationInView:self.outletView];
        NSIndexPath *swipedIndexPath = [self.outletView indexPathForRowAtPoint:swipeLocation];
        UITableViewCell* swipedCell = [self.outletView cellForRowAtIndexPath:swipedIndexPath];
        [swipedCell setEditing:YES];

    }   
}
Run Code Online (Sandbox Code Playgroud)

这只是一个模拟器问题还是我做错了什么?

ugh*_*fhw 10

如果您只想在桌面上启用"滑动到删除",则可以采用更简单的方法.tableView:commitEditingStyle:forRowAtIndexPath:在数据源中实现,表格视图将在刷新单元格时自动显示删除按钮.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Run Code Online (Sandbox Code Playgroud)

  • 如果定义了该方法,表视图将自动显示按钮.单击按钮时将调用该方法.如果您实际上不想删除该按钮,则不要在方法内调用deleteForRowsAtIndexPaths:. (2认同)