UIScrollView以自定义速度scrollRectToVisible

时间:2009-10-13 04:57:29

标签: iphone uiscrollview

我有一个UIScrollView,我正在调用scrollRectToVisible:animated:YES就可以了。 我想设置动画的速度。可以这样做吗?

2 个答案:

答案 0 :(得分:12)

我最终找到了解决方案。在我的例子中,滚动在启动后以编程方式进行动画制作,以模仿老虎机(具有3个水平UIScrollViews)。正在使用scrollRectToVisible:animated:method。

执行此操作

我必须使用UIView的beginAnimation设置自定义速度:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:(abs(rMid-pMid)*0.3)];
scrollMid.contentOffset = CGPointMake(rMid*320, 0);
[UIView commitAnimations];

AnimationDuration取决于滚动条在每个“绘图”之间移动的距离。

答案 1 :(得分:5)

带有块的现代版本:

[UIView animateWithDuration:1.0 animations:^{
    [self.scrollView scrollRectToVisible:CGRectMake(...) animated:NO];
} completion:^(BOOL finished) {
    ...
}];