iphone setAnimationWillStartSelector / setAnimationDidStopSelector não funciona (a exemplo ticker de rolagem)

StackOverflow https://stackoverflow.com/questions/1808320

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu estou mostrando um relógio na parte inferior de uma vista (pense bar manchetes ticker de um canal de notícias) na forma de um scrollview horizontal. Ele funciona corretamente quando eu definir o repeatCount ao infinito, mas eu quero ser capaz de fazer alguma outra funcionalidade quando a animação começa e pára em seu lugar. No entanto, depois de ler a documentação e muitos exemplos on-line, eu não consigo setAnimationWillStartSelector / setAnimationDidStopSelector para responder.

Aqui está o meu código:

- (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];    
}

No momento este código está no meu subclasse UIViewController. No entanto, eu também tentei colocar tudo isso em meu delegado aplicativo, bem como, ao mesmo tempo, mudar o setAnimationDelegate obviamente. Eu tentei usar vários animationDurations, repeatCounts, etc, mas ainda não sorte.

realmente aprecio qualquer ajuda. Graças

Foi útil?

Solução

Você pode tentar colocar o setAnimationDelegate, setAnimationWillStartSelector e setAnimationDidStopSelector dentro do bloco de animação. De acordo com a documentação iPhone OS biblioteca de referência, estes métodos têm de ser colocados no interior do bloco de animação em ordem para que ele funcione.

Espero que isso ajude! aobs

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top