2010-10-06 4 views
0

J'essaye d'ajouter une animation continue sur mon UITableViewCell-Sous-classe. Il est un peu facile avec une image en fondu (fondu entre 0,4 alpha et 1,0), ce que j'ai essayé jusqu'à présent ist les suivantes:animation continue dans UITableViewCell

-(void)animateRecordingIndicator{ 

    [UIView beginAnimations:@"RecordingIndicatorAnimation" context:nil]; 
    [UIView setAnimationDuration:0.3]; 

    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(animationFinished)]; 

    if (animatedImageView.alpha == 0.4) 
     animatedImageView.alpha = 1.0; 
    else 
     animatedImageView.alpha = 0.4;  

    [UIView commitAnimations]; 
} 

le code dans animationFinished est comme suit:

-(void)animationFinished{ 
    if (doShowAnimation) { 
     [self performSelectorOnMainThread:@selector(animateRecordingIndicator) withObject:nil waitUntilDone:YES]; 
    } 
} 

ce que je pense devrait être clair maintenant, mais ce que je reçois est tout simplement un accident avec Stackframes de chargement Xcode plus ou moins eternaly :)

Je suis très reconnaissant pour toutes sortes de conseils, Tipp ou astuce comment faire face à ce .

merci à l'avance,

sam

+0

Question rapide avant de répondre, la compatibilité iOS3 est-elle obligatoire? –

+0

na pas vraiment, je voudrais juste laisser de côté l'animation sur les périphériques exécutant tout ce qui est inférieur à 4.1 ou 4.0 – samsam

Répondre

1

Selon le UIView class reference, vous êtes maintenant découragés d'utiliser la méthode commitAnimations. Au lieu d'utiliser les éléments suivants:

animateWithDuration:delay:options:animations:completion: 

J'imagine la récursion infinie que vous rencontrez est lié aux raisons d'Apple pour faire cette recommandation.

+0

merci pour votre indice, son animation maintenant. Malheureusement, l'application se bloque après le début de l'animation et l'entrée de l'utilisateur n'est plus possible. aussi seulement le premier de tableViewCells obtient l'animation pour fonctionner. – samsam