UIScrollView scrollRectToVisible на пользовательской скорости

У меня есть UIScrollView, и я вызываю scrollRectToVisible: animated: YES на нем. Я бы хотел установить скорость анимации. Это может быть сделано?

13.10.2009 04:57:29
2 ОТВЕТА
РЕШЕНИЕ

Я закончил тем, что нашел решение. В моем случае прокрутка была анимирована программно после запуска, чтобы имитировать игровой автомат (с 3 горизонтальными UIScrollViews). Делал это с scrollRectToVisible: animated: метод.

Я должен установить пользовательскую скорость, используя 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];

Продолжительность анимации зависит от расстояния, на которое скроллер должен перемещаться между каждым «рисунком».

12
1.11.2009 08:29:59

Современная версия с блоками:

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