Я отображаю тикер в нижней части представления (представьте панель тикера заголовков новостного канала) в виде горизонтальной прокрутки. Он работает правильно, когда я устанавливаю repeatCount равным бесконечности, но я хочу иметь возможность выполнять некоторые другие функции, когда анимация запускается и останавливается вместо этого. Однако после прочтения документации и многих примеров в Интернете я не могу заставить setAnimationWillStartSelector / setAnimationDidStopSelector ответить.
Вот мой код:
- (void)animateView {
[UIScrollView setAnimationDelegate:self];
[UIScrollView setAnimationWillStartSelector:@selector(animationStart:context:)];
[UIScrollView setAnimationDidStopSelector:@selector(animationStop:finished:context:)];
[UIScrollView beginAnimations:@"pan" context:nil];
[UIScrollView setAnimationDuration:10.0f];
[UIView setAnimationRepeatCount:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIScrollView setAnimationCurve:UIViewAnimationCurveLinear];
tickerScrollView.contentOffset = CGPointMake(textLabelRect.size.width,0);
[UIScrollView commitAnimations];
}
- (void)animationStart:(NSString *)animationID context:(void *)context {
NSLog(@"animationWillStart");
}
- (void)animationStop:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
NSLog(@"animationDidStop");
[self animateView];
}
На данный момент этот код находится в моем подклассе UIViewController. Тем не менее, я также попытался поместить все это в свой делегат приложения, в то же время явно меняя setAnimationDelegate. Я пытался использовать различные animationDurations, repeatCounts и т. Д., Но все равно не повезло.
Был бы очень признателен за любую помощь. Спасибо