6 votes

IPhone a perdu toute animation de transition UI

Actuellement, je rencontre un problème quelque part, l'application a perdu toutes ces animations artistiques d'interface utilisateur par exemple, le retournement de page, l'apparition de la vue d'alerte, le glissement de la feuille d'actions, etc. Cela signifie que toutes ces interfaces utilisateur apparaîtront immédiatement sans aucune animation de transition. Cela semblait très étrange.

Tout d'abord, l'application fonctionnera normalement jusqu'à ce que quelque chose déclenche le problème ci-dessus, et après cela, seule la relance de l'application ou l'arrêt de l'application arrêtera le problème.

Il n'y a aucun message d'erreur ni aucun indice que je puisse trouver pour comprendre quelle pourrait être la raison. Est-ce que l'un d'entre vous a rencontré un problème similaire à celui décrit ci-dessus? Veuillez partager avec moi comment je pourrais résoudre le problème ci-dessus. Merci.

1voto

johnpatrickmorgan Points 2214

Les animations peuvent être désactivées pour l'ensemble de l'application chaque fois qu'une tentative est faite pour animer des vues sur un thread arrière-plan, par exemple en appelant l'une des méthodes de classe de la famille animateWithDuration:animations: de UIView à partir d'un thread arrière-plan. Assurez-vous de mettre à jour l'interface utilisateur de votre application uniquement à partir du thread principal.

Vous pouvez vérifier si le code s'exécute sur le thread principal en testant [NSThread currentThread].isMainThread et vous pouvez vous assurer qu'il s'exécute sur le thread principal de la manière suivante:

dispatch_async(dispatch_get_main_queue(), ^(void) {
    // Votre code
});

Alternativement, assurez-vous de ne pas appeler [UIView setAnimationsEnabled:NO] n'importe où, car cela désactivera également les animations pour l'ensemble de l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X