Если я понимаю, что вы пытаетесь сказать, вам нужна непрерывная медленная прокрутка (600 пикселей на 15 секунд), которая может быть отменена пользователем.
Если это то, что вы хотите, я 'Я бы использовал другой подход, чем этот.Анимация, которую вы запускаете, когда запускается, вероятно, будет просто делать то, что ей говорят, в то время как пользователь также взаимодействует, и все это будет очень грязно.прокрутка движения, один пиксель за раз.Тогда пользователь все еще может свободно взаимодействовать.
что-то вроде:
...
NSTimer *slow = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(scrollALittle:) userInfo:nil repeats:YES];
...
// maybe, somewhere:
[slow invalidate];
-(void)scrollALittle:(NSTimer*)theTimer
{
CGPoint offset = scrollview.contentOffset;
offset.y+=4; // 10 times 4 pix a second makes 600px/15 seconds.
// add check on max y?
// these checks are deliberately placed as close as possible to the contentOffset assignment
if ( scrollview.tracking ) return;
if ( scrollview.dragging ) return;
if ( scrollview.zooming ) return;
if ( scrollview.decelerating ) return;
scrollview.contentOffset = offset;
}
конечно, вы можете многое здесь сделать, но это может быть отправной точкой.