UITableView加载更多自动滚动问题

时间:2015-06-04 07:32:50

标签: ios objective-c uitableview uiviewanimation

民间,

我在应用滚动加载到我的UITableView时遇到了一个奇怪的问题。我还添加了 YouTube 视频,以供参考。在滚动到底部时,API命中服务器并获取接下来的5条记录。这时我没有重新加载桌子,也不是我想要的。我只是在表中添加更多行。代码如下:

// adding new rows rather than reloading the table
if(loadMore)
{
    NSMutableArray *indexPaths = [NSMutableArray array];
    for (NSUInteger i = 0; i < arr.count; i++)
    {
        [indexPaths addObject:[NSIndexPath indexPathForRow:arr.count+i inSection:0]]; // adding max 5 new indexPaths
    }

    [self.tblData beginUpdates];
    [self.tblData insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; // insert with fade animation
    [arrData addObjectsFromArray:arr]; // adding new data to existing array
    [self.tblData endUpdates];
}

现在看我上传的视频。在第一次加载时,它就像魅力一样。你可以在00:07看到它。它在底部添加了5行,并带有淡入淡出动画。

但是在第一次加载之后,对于接下来的5次加载,它会从服务器中再添加5条记录并将它们添加到表中,但它也会在同一索引处自动滚动,请参阅00:15处的视频,{{3} },00:23等等。

你可以看到它在第一次加载时效果很好(00:30),但从那以后,即使所有记录也都很好。

之后我将模拟器动画更改为,您可以在00:07之后看到

有谁能告诉我为什么会这样?在某个地方,我发现它是由于AutoLayout,然后我制作了另一个已禁用autolayout的故事板,但问题仍然存在。

0 个答案:

没有答案