当我滚动到我的tableview的底部,并获取更多的数据与下一个偏移量,我将新的对象添加到我的数据数组。然而,我的tableview重新加载并返回到第一个单元格。我试图阻止这一点。Tableview在添加新数据时滚动到顶部。无限滚动
- (void)fetchMovies {
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
[self.networkingHelper fetchNowPlayingWithCompletionHandler:^(NSArray *objects, NSError *error) {
if (error) {
[self showErrorView:self.errorView];
} else {
[self hideErrorView:self.errorView];
}
[self.movies addObjectsFromArray:objects];
self.displayedItems = self.movies;
dispatch_async(dispatch_get_main_queue(), ^{
self.isMoreDataLoading = false;
if ([[NSThread currentThread] isMainThread]){
NSLog(@"In main thread--completion handler");
[self.refreshControl endRefreshing];
[self.loadingMoreView stopAnimating];
[MBProgressHUD hideHUDForView:self.view animated:YES];
} else {
NSLog(@"Not in main thread--completion handler");
}
});
}
];
}
编辑尝试添加该
- (void)fetchMovies {
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
[self.networkingHelper fetchNowPlayingWithCompletionHandler:^(NSArray *objects, NSError *error)
{
if (error)
{
[self showErrorView:self.errorView];
}
else
{
[self hideErrorView:self.errorView];
}
[self.movies addObjectsFromArray:objects];
self.displayedItems = self.movies;
dispatch_async(dispatch_get_main_queue(), ^{
self.isMoreDataLoading = false;
if ([[NSThread currentThread] isMainThread]){
NSLog(@"In main thread--completion handler");
CGFloat oldOffset = self.moviesTableView.contentSize.height;
[self.moviesTableView reloadData];
CGFloat onewOffset = self.moviesTableView.contentSize.height;
CGPoint new = CGPointMake(0, onewOffset - oldOffset);
[self.moviesTableView setContentOffset:new];
[self.refreshControl endRefreshing];
[self.loadingMoreView stopAnimating];
[MBProgressHUD hideHUDForView:self.view animated:YES];
}
else{
NSLog(@"Not in main thread--completion handler");
}
});
}
];
}
还是滚动到顶部
我不认为我很清楚。我的意思是我的tableview自动进入顶层单元格。我试图阻止这一点。所以用户可以继续滚动浏览下一页的新条目 – mparrish91
,那么你想滚动底部意味着你的最后一个单元? –
是对最后一个单元格。当用户在桌面上向下滑动并请求下一页时。有桌面停留并显示下一页。 – mparrish91