2010-10-24 5 views
0

Je souhaite avoir un menu de chargement personnalisé à partir d'une série d'images fixes, qui se répète 3 fois puis révèle une image. Actuellement, l'image est visible depuis le début. Je veux utiliser isAnimating pour savoir quand l'animation de chargement s'est arrêtée, et soit myImage.hidden soit désactiver, soit avoir le UIImageView contenant initialement une image blanche, puis être remplacé par l'image lorsque isAnimating renvoie NO.Comment utiliser isAnimation dans une application iPhone

site d'Apple dit que

- (BOOL)isAnimating 

et qu'il retourne un OUI ou NON booléenne.

mais comment l'utilisez-vous?

J'ai besoin que quelque chose se produise selon que quelque chose est animé ou non, donc je fais le résultat qu'il renvoie dans une variable et vérifie cela dans le conditionnel d'une instruction if?

le mettre dans une instruction if elle-même? ou est-ce une déclaration while?

ou est-ce comme:

- (BOOL)isAnimating{ 
    //stuff to do if it is 
} 

ou suis-je juste le concept devient tout à fait tort?

+0

Cette question semble manquer un paragraphe d'introduction. Peut-être pouvez-vous reformuler pour indiquer exactement (A) quel est votre problème, (B) ce que vous avez déjà essayé, (C) comment cela n'a pas fonctionné. Êtes-vous en train de parler de la méthode 'isAnimating' dans' UIActivityIndicatorView' ou 'UIImageView'? –

+0

vous avez raison, je me suis précipité. Je parle de l'UIImageView. – espekia

Répondre

1

Je suppose que la méthode isAnimating vous indique si une UIViewImage effectue réellement une animation.
Puisque vous voulez juste créer un chargement court avant d'afficher votre image, pourquoi n'utilisez-vous pas simplement une minuterie? Vous pouvez faire quelque chose comme ceci

- (void)startAnimation { 
    yourImageView.hidden = YES; // Keep you image hidden while loading 
    [yourLoadingAnimation startAnimating]; // Start you loading animation 
    NSInteger timeout = 2; // Duration in seconds of your loading animation 
    [NSTimer scheduledTimerWithTimeInterval:timeout target:self selector:@selector(stopAnimation) userInfo:nil repeats:NO]; // Set the timer 
} 

- (void)stopAnimation { 
    [yourLoadingAnimation stopAnimating]; // Stop your loading animation 
    yourLoadingAnimation.hidden = YES; // Hide your laading animation 
    yourImageView.hidden = NO; // Display your image 
} 
+0

Je ne pouvais pas le faire fonctionner mais cela semble être une bonne approche, merci quand même. – espekia

+0

sont ces méthodes, que j'ai besoin d'appeler ailleurs pour qu'ils fassent quelque chose? si c'est le cas, comment? J'ai entendu dire que ça devrait être comme [méthode d'objet]; mais ceux-ci s'appliquent à plus d'un objet alors comment puis-je les implémenter? – espekia

+0

Que voulez-vous dire? Vous devez implémenter les 2 objets (yourLoadingAnimation et yourImageView) – pasine

Questions connexes