2012-12-12 5 views
0

Sur la page d'accueil de mon application, je souhaite animer une image PNG en glissant dans la vue, puis en la faisant glisser à nouveau avant qu'une deuxième image ne glisse, puis sortez. Temps juste pour le spectateur à lire avant que chacun disparaisse. Je ne sais pas comment faire cela et voudrais une entrée? semble assez simple, j'espère que c'est et quelqu'un peut me dire comment le faire. Je le veux également en boucle, donc à chaque fois que vous revenez à l'écran, il s'anime encore.image animée/UIView iOS

Des idées s'il vous plaît? Seulement un jour ou deux pour terminer

Répondre

0

Plus ou moins en pleine expansion sur la réponse de Tom van Zummeren. Cela devrait suffire à faire passer l'idée de base.

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, -280, 280, 280)]; 
    [myImageView setImage:[UIImage imageNamed:@"1.png"]]; 
    [self.view addSubview:myImageView]; 

    [UIView animateWithDuration:2.0 delay:1.0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
     [myImageView setCenter:self.view.center]; 
    }completion:^(BOOL done){ 
     [UIView animateWithDuration:2.0 delay:3.0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 
      [myImageView setCenter:CGPointMake(myImageView.center.x, self.view.bounds.size.height + (myImageView.bounds.size.height/2))]; 
     }completion:^(BOOL done){ 
      [myImageView setFrame:CGRectMake(20, -280, 280, 280)]; 
      NSLog(@"%@",NSStringFromCGRect(myImageView.frame)); 
      [myImageView setImage:[UIImage imageNamed:@"2.png"]]; 
     }]; 
    }]; 
} 
+0

merci qui est décrit à moi maintenant et je peux travailler sur elle acclamations – holtii

+0

@holtii Si cela a aidé, s'il vous plaît marquer comme correct :) –

+0

a besoin d'un peu de travail plutôt que vertical, comment est-ce que je deviens horizontal? à travers l'écran, c'est presque ce que je veux, besoin de modifier un peu, + faire de l'image ne pas devenir écrasé – holtii

1

Vous pouvez utiliser Core Animation pour cela. C'est vraiment facile à faire. Exemple animation:

UIImageView *imageView = ...; 
imageView.frame = CGRectMake(-160, 100, 250, 200); 
[UIView animateWithDuration:1.5 animations:^{ 
    imageView.frame = CGRectMake(160, 100, 250, 200); 
}]; 

Cet anime un UIImageView de coordonnée x de -160 à 160 en 1,5 seconde.

+1

Avez-vous une raison pour animer le cadre lorsque vous ne changez pas la taille de la vue? Pourquoi ne pas simplement animer la propriété 'center'? (Aussi, ce sont des animations UIView et pas Core Animation) –

+1

Center est bien aussi. Cela ne me dérange pas. Et c'est une animation de base mais avec une fine couche d'abstraction UIKit. –

+0

Par cette logique, c'est aussi OpenGL ES: D –

0

// Le point de départ

pImgFlowing.frame = CGRectMake(544, 817, 84, 18); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:2.0f]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

// Fin Point

pImgFlowing.frame = CGRectMake(544, 774, 84, 61); 
[UIView commitAnimations];