UIScrollView scrollRectToVisible на пользовательской скорости - PullRequest
7 голосов
/ 13 октября 2009

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

Ответы [ 2 ]

12 голосов
/ 01 ноября 2009

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

Мне нужно установить собственную скорость с помощью beginAnimation UIView:

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

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

5 голосов
/ 28 июля 2014

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

[UIView animateWithDuration:1.0 animations:^{
    [self.scrollView scrollRectToVisible:CGRectMake(...) animated:NO];
} completion:^(BOOL finished) {
    ...
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...