试图将 tableview 滚动回顶部但是当我调用它时:
[self.tableView setContentOffset:CGPointMake(0, -self.tableView.contentInset.top) animated:YES];
有时它可以正常工作并一直滚动到顶部,但奇怪的是它也不会一直滚动到顶部。
最佳答案
尝试其中之一,
[self.tableView setContentOffset:CGPointMake(0, 0 - self.tableView.contentInset.top) animated:YES];
或者
UITableView 是 UIScrollView 的子类,所以你也可以使用:
[mainTableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
或者
[mainTableView setContentOffset:CGPointZero animated:YES];
或者
NSIndexPath* top = [NSIndexPath indexPathForRow:NSNotFound inSection:0];
[tableView scrollToRowAtIndexPath:top atScrollPosition:UITableViewScrollPositionTop animated:YES];
编辑你的
- (void)tabBarController:(UITabBarController *)tabBarController
didSelectViewController:(UIViewController *)viewController
如下所示,
- (void)tabBarController:(UITabBarController *)tabBarController
didSelectViewController:(UIViewController *)viewController
{
static UIViewController *previousController = nil;
if (previousController == viewController) {
// the same tab was tapped a second time
if ([viewController respondsToSelector:@selector(scrollToTop)]) {
[viewController scrollToTop];
}
}
previousController = viewController;
}
希望对您有所帮助。
关于ios - 为什么当我调用 setContentOffset 滚动到顶部 tableView 时,有时它会走到一半左右?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571101/