2010-04-06 5 views
2

J'ai UIImageView dessiné dans mon fichier nib et il est connecté à un iboutlet imageView. Je peux charger des images uniques qui apparaîtront très bien, mais quand il s'agit de dessiner plusieurs images séparément comme une animation, les images ne seront pas affichées. J'ai la fonction drawImage() qui prend des objets NSData (données d'image) et les dessine sur un écran (imageView).iPhone: UIImageView ne montrant pas les images

La fonction principale a pour boucle qui boucle 300 fois plus vite que possible et chaque fois qu'elle appelle cette fonction drawImage et lui transmet différentes données d'image. Parfois, quand j'exécute ce code, la dernière image de cette "animation" apparaît, parfois pas du tout. Peut-être que j'ai besoin de planifier suffisamment de temps pour imageView afin que l'image peut être affichée?

J'espère que quelqu'un a des indices. Merci d'avance!

+0

Quel est votre but exact ... voulez-vous animer les images une par une ...? –

+0

Oui, il devrait juste les dessiner un par un aussi vite que possible. de 0 à 300. – George

Répondre

0

essayer quelque chose comme

// create the view that will execute our animation 
    UIImageView* ImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; 

    // load all the frames of our animation 
    ImageView.animationImages = [NSArray arrayWithObjects: 
           [UIImage imageNamed:@"1.png"], 
           [UIImage imageNamed:@"2.png"], 
           [UIImage imageNamed:@"3.png"], 
          nil]; 

    // all frames will execute in 1.75 seconds 
    ImageView.animationDuration = 1.75; 
    // repeat the annimation forever 
    ImageView.animationRepeatCount = 0; 
    // start animating 
    [ImageView startAnimating]; 
    // add the animation view to the main window 
    [self.view addSubview:ImageView]; 
0

il y a quelques minutes seulement, après avoir combattu ce pendant environ 6 heures, je réussi à le faire fonctionner comme je le voulais.

Ceci est la ligne magique qui l'a fait:

[self.imageView performSelectorInBackground:@selector(setImage:) 
           withObject:imageData]; 

Merci pour l'aide! :)

+2

donc, ne devriez-vous pas le marquer comme répondu alors? – Dad