Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iphone - UIScrollview - scrollRectToVisible with slow animation

I'm using UIScrollView and using scrollRectToVisible:animated This is working fine for me. But I want to scroll to a location slowly so that user can notice the effect. Is it possible.

I'm trying the following code, but didn't succeed.

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:2.0];  
[scrlView scrollRectToVisible:<<some cgrect>> animated:YES];            
[UIView commitAnimations];          
like image 513
Satyam Avatar asked Nov 21 '10 11:11

Satyam


1 Answers

The solution is actually pretty easy. If you use [scrollView scrollRectToVisible:frame animated:YES] the scrollview will start it's own animation, so in order to animate with your duration you have to use [scrollView scrollRectToVisible:frame animated:NO] within your animation.

In other words: This will work.

[UIView animateWithDuration:3 
                      delay:0 
                    options:UIViewAnimationOptionCurveEaseInOut 
                 animations:^{ [scrollView scrollRectToVisible:frame animated:NO]; } 
                 completion:NULL];
like image 58
voidStern Avatar answered Oct 19 '22 00:10

voidStern