iphone setAnimationWillStartSelector / setAnimationDidStopSelector non funziona (un esempio di ticker scorrevole)

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

  •  05-07-2019
  •  | 
  •  

Domanda

Sto visualizzando un ticker nella parte inferiore di una vista (pensa alla barra del ticker dei titoli di un canale di notizie) sotto forma di una vista di scorrimento orizzontale. Funziona correttamente quando imposto repeatCount su infinito ma voglio invece poter fare altre funzionalità all'avvio e all'arresto dell'animazione. Tuttavia, dopo aver letto la documentazione e molti esempi online, non riesco a impostare setAnimationWillStartSelector / setAnimationDidStopSelector per rispondere.

Ecco il mio codice:

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

Al momento questo codice è nella mia sottoclasse UIViewController. Tuttavia, ho anche provato a mettere tutto nel mio delegato dell'app, modificando ovviamente anche setAnimationDelegate. Ho provato ad usare varie animazioni, ripetizioni, ecc., Ma ancora senza fortuna.

Gradirei davvero qualsiasi aiuto. Grazie

È stato utile?

Soluzione

Puoi provare a inserire setAnimationDelegate, setAnimationWillStartSelector e setAnimationDidStopSelector all'interno del blocco animazione. Secondo la documentazione della Libreria di riferimento del sistema operativo iPhone, questi metodi devono essere inseriti all'interno del blocco di animazione affinché funzioni.

Spero che questo aiuti! AOBS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top