获取UIScrollView滚动到顶部


Answers:


316

iOS 7更新

[self.scrollView setContentOffset:
    CGPointMake(0, -self.scrollView.contentInset.top) animated:YES];

原版的

[self.scrollView setContentOffset:CGPointZero animated:YES];

或者,如果您想保留水平滚动位置并仅重置垂直位置:

[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0)
    animated:YES];

50
如果您在iOS 7上执行此操作,那么很可能必须考虑UIScrollView contentInset[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, -self.scrollView.contentInset.top) animated:YES];为我做这份工作
2013年

11
我能够滚动到导航和状态栏正下方的顶部。 [scrollView setContentOffset:CGPointMake(0, -scrollView.contentInset.top) animated:YES];它适用于iOS 6和7
Amozoss 2013年

这对我不起作用,可能是因为我在Sprite Kit中使用反向视图正在做一些疯狂的事情。但是,如果其他人和我一样疯狂-并且默认情况下您的滚动视图位于底部-它将滚动至顶部:[scrollView setContentOffset:CGPointMake(0, scrollView.contentSize.height-scrollView.frame.size.height) animated:YES];
GilesDMiddleton 2015年

最新评论:无论操作系统版本如何,都应调整内容插入。iOS 7恰好使用它来允许状态栏下方的滚动内容,但是它始终作为属性公开,因此总是被某人使用。
汤米

2
对于iOS 11+,至少在我看来,JakubTruhlář的以下使用AdjustedContentInset的答案很有帮助。
tnev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.