Ios 当单元格被删除时,UITableView跳转到顶部,然后返回到其位置

Ios 当单元格被删除时,UITableView跳转到顶部,然后返回到其位置,ios,objective-c,ruby,uitableview,rubymotion,Ios,Objective C,Ruby,Uitableview,Rubymotion,我正在尝试编写一个提要,因此它只是一个基本的UITableView,每个部分有一行,每个部分和文章一样多。 如果我选择了一个单元格,tableView会在与所选单元格相同的部分的第1行中显示一个单元格,如果我重新选择该单元格或滚动tableView,则会删除第1行 问题是,如果我选择第一个单元格,然后滚动到底部(就像拉动刷新),则在删除单元格的动画完成时,tableView会滚动,然后在动画结束时跳到屏幕顶部,然后返回到他所在的位置 我不知道这是否清楚 这是我的卷轴 def scrollView

我正在尝试编写一个提要,因此它只是一个基本的UITableView,每个部分有一行,每个部分和文章一样多。 如果我选择了一个单元格,tableView会在与所选单元格相同的部分的第1行中显示一个单元格,如果我重新选择该单元格或滚动tableView,则会删除第1行

问题是,如果我选择第一个单元格,然后滚动到底部(就像拉动刷新),则在删除单元格的动画完成时,tableView会滚动,然后在动画结束时跳到屏幕顶部,然后返回到他所在的位置

我不知道这是否清楚

这是我的卷轴

def scrollViewDidScroll(scroll_view)
    return if @can_scroll_comments
    hide_comments unless @comment_triggered_for == -1
  end

  def hide_comments
    feed_view = layout.get(:feed_view)

    section = @comment_triggered_for
    @comment_triggered_for = -1
    feed_view.deleteRowsAtIndexPaths([NSIndexPath.indexPathForRow(1, inSection: section)], withRowAnimation: UITableViewRowAnimationFade)
  end
在objective-c中,它应该是

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (_can_scroll_comments) {
        return ;
    }
    if (_comment_triggered_for != -1) {
        [self hide_comments];
    }
}

- (void)hide_comments: {
    section = _comment_triggered_for
    _comment_triggered_for = -1
    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:section]] withRowAnimation:UITableViewRowAnimationFade];
 }

感谢您的帮助:)

您可以使用UITableView的开始更新、停止更新。我尝试了开始和结束更新,但没有改变任何内容:/下面的链接将帮助您解决此问题: