2010-10-06 12 views
1

J'ai du mal à déplacer une image vers un autre emplacement après la fin de la première animation.iphone - déplacement d'un UIImageView

l'image s'anime à un point que j'ai spécifié, puis s'arrête (cela fonctionne bien). Je voudrais ensuite déplacer l'image à un autre endroit et répéter.

voici mon code:

-(void) loadTap { 

NSArray *imageArray = [[NSArray alloc] initWithObjects: 
                 [UIImage imageNamed:@"tap1.png"], 
                 [UIImage imageNamed:@"tap2.png"], 
                 [UIImage imageNamed:@"tap3.png"], 
                 [UIImage imageNamed:@"tap4.png"],              
               nil]; 

    tapImage.animationImages = imageArray; 
    tapImage.animationRepeatCount = 1; 

    [imageArray release]; 

    tapImage.animationDuration = 1; 
    tapImage.animationRepeatCount = 20; 

    [tapImage startAnimating]; 
    tapImage.center = CGPointMake(156, 110); 

} 

Merci pour toute aide.

Répondre

6

Pour déplacer une image, vous devez placer le code pour se déplacer dans un bloc d'animation:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 
tapImage.center = CGPointMake(156, 110); 
[UIView commitAnimations]; 

Vous pouvez également donner une méthode pour exécuter à la fin de l'animation avec la méthode UIView setAnimationDidStopSelector:.

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animateImages)]; 
tapImage.center = CGPointMake(156, 110); 
[UIView commitAnimations]; 

//other stuff 

-(void)animateImages{ 
    [tapImage startAnimating]; 
} 
+0

ce qui aide grandement. Merci beaucoup. – hanumanDev

+0

une chose rapide - si, après l'achèvement de l'animation, je veux déplacer l'image à tapImage.center = CGPointMake (156, 210); et ensuite animer, serait-ce dans un nouveau bloc? – hanumanDev

+0

Quelle animation? Vous n'avez pas besoin d'un bloc d'animation pour parcourir le tableau d'images, mais vous avez besoin de toute animation de la vue en ce qui concerne son environnement (mouvement, rotation, évanouissement, etc.). Donc, si votre séquence d'événements est: 1. Faites défiler les images. 2. Passez à (156, 110). 3. Recommencez le cycle. 4. Passez à (156, 210). 5. Recommencez le cycle. alors, oui, vous avez besoin d'un bloc d'animation séparé à chaque séquence de mouvement. – executor21