Ecco la mia configurazione:UIView animazione si ferma quando vista scompare, non riprende quando appare di
ho uno storyboard con un ListViewController. ListViewController ha una sottoview UIView chiamata EmptyListView. EmptyListView viene mostrato solo quando non ci sono elementi in UITableView, altrimenti è nascosto.
EmptyListView ha una vista secondaria UIImageView chiamata emptyListViewArrow che punta visivamente verso il pulsante per creare una nuova voce nel mio UITableView. Questa freccia è animata all'infinito in uno stile up &.
Ascolto per EmptyListView per inviare una notifica quando ha terminato la visualizzazione delle sottoview. Lo faccio perché altrimenti le animazioni che mutano i vincoli si comportano in modo errato.
- (void) layoutSubviews {
[super layoutSubviews];
[[NSNotificationCenter defaultCenter] postNotificationName:@"EmptyViewDidLayoutSubviews" object:nil];
}
Quando ListViewController osserva questa notifica, inizia l'animazione:
[UIView animateWithDuration:0.8f delay:0.0f options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^{
self.emptyListViewArrowVerticalSpace.constant = 15.0f;
[emptyListView layoutIfNeeded];
} completion:nil];
Se metto l'applicazione in background o spingere un altro ViewController in pila, una volta che torno al app o il ListViewController, l'animazione viene arrestata/sospesa. Non riesco a farlo ripartire.
ho provato:
- Ascolto per l'applicazione darà le dimissioni/diventano attive. Quando mi sono dimesso, ho fatto [self.view.layer removeAllAnimations] e poi ho provato ad avviare nuovamente l'animazione usando il codice sopra.
- Rimozione di UIImageView in corso di animazione e aggiunta alla vista padre, quindi tentativo di avviare l'animazione.
Sono rammaricato di utilizzare i vincoli qui, ma mi piacerebbe avere qualche idea su quale potrebbe essere il problema.
Grazie!
Stai utilizzando i tuoi metodi in 'viewDidLoad' o' viewWillAppear'? – iOS
viewDidAppear, ma non per alcun motivo particolare. – chrysb