首页 文章

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

提问于
浏览
1

这很奇怪 . 我正在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];

    }   
}

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

3 回答

  • 0

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

    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
    
  • -1

    如果您在 Headers 中定义了UITableView,请尝试:

    swipedCell = [self.outletView cellForRowAtIndexPath:swipedIndexPath];
    
  • 10

    如果使用自定义单元格并覆盖 setEditing ,则必须调用super方法,否则将不会绘制删除控件 .

    - (void)setEditing:(BOOL)editing animated:(BOOL)animated {
        [super setEditing:editing animated:animated];
    }
    

相关问题