如何让UIScrollView以特定速度自动滚动?

7
我正在使用touchesBegan和touchesMoved来跟踪用户的交互,以便我可以看到用户在屏幕上触摸的位置。我想要做的是当他们的手指滑到屏幕的最后20个像素时,让UIScrollView scroll1向下滚动。但是如何定义速度?肯定一个while语句会让它移动得太快,而UIView动画只能将其移动到某个位置一次。
1个回答

20

您可以使用以下代码实现此操作:

[UIScrollView beginAnimations:@"scrollAnimation" context:nil];

[UIScrollView setAnimationDuration:REQUIRED_ANIMATION_DURATION];

[scroll setContentOffset:CGPointMake(REQUIRED_DISTANCE_X, REQUIRED_DISTANCE_Y)];

[UIScrollView commitAnimations];

只需将REQUIRED_ANIMATION_DURATION的值设置为您想要的时间间隔即可。较小的时间间隔意味着更快的速度。


我知道在3.0中停止使用了一种类似的动画方法,并被[UIView animation..]所取代。这是否算作原始类型,还是仍然是推荐的方法? - Andrew
这是相同的原始方法。UIScrollView继承自UIView,因此可以将相同的动画方法用于它。您可以在发布的代码中将UIScrollView替换为UIView。结果将是相同的。 - HG's

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接