如何使UIScrollView滚动到顶部?
[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];
如果您在iOS 7上执行此操作,那么很可能必须考虑
UIScrollView
contentInset
。[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, -self.scrollView.contentInset.top) animated:YES];
为我做这份工作我能够滚动到导航和状态栏正下方的顶部。
[scrollView setContentOffset:CGPointMake(0, -scrollView.contentInset.top) animated:YES];
它适用于iOS 6和7这对我不起作用,可能是因为我在Sprite Kit中使用反向视图正在做一些疯狂的事情。但是,如果其他人像我一样疯狂-并且默认情况下您的滚动视图位于底部-会将其滚动到顶部:
[scrollView setContentOffset:CGPointMake(0, scrollView.contentSize.height-scrollView.frame.size.height) animated:YES];
最新评论:无论操作系统版本如何,都应调整内容插入。iOS 7恰好使用它来允许状态栏下面的滚动内容,但是它始终作为属性公开,因此总是有可能被某人使用。
对于iOS 11+,至少在我看来,JakubTruhlář的以下使用AdjustedContentInset的答案很有帮助。