2010-08-16 5 views
0

J'ai une vue de table et une vue normale (disons vue 2) dans une vue normale. Tout est fait dans le constructeur d'interface. La vue 2 est au-dessus de la vue de table et doit apparaître animée d'en haut au chargement de la vue. Lorsque vous appuyez sur un bouton, la vue disparaît à nouveau. Comment puis-je faire ceci?Ajout d'une vue animée

grâce

Répondre

1

Vous devrez animer ce dans un bloc d'animation personnalisée. Il devrait être assez simple .. Définissez votre cadre de vue afin qu'elle soit au-dessus de l'écran et non visible:

[yourView setFrame:CGRectMake(0, -480, 320, 480)]; 

Dans le bloc d'animation tout simplement changer le cadre de votre point de vue dans le bloc d'animation:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:GROW_AND_MOVE_ANIMATION_DURATION_SECONDS]; 
[yourView setFrame:CGRectMake(0, 0, 320, 480)]; 
[UIView commitAnimations]; 

Pour rejeter/faire disparaître même utiliser l'animation avec l'image précédente:

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:GROW_AND_MOVE_ANIMATION_DURATION_SECONDS]; 
[yourView setFrame:CGRectMake(0, -480, 320, 480)]; 
[UIView commitAnimations]; 

Mais avant que vous demander si vous devez le mettre en haut de, parce que si Brin ging en bas de en vue modal répond à vos besoins, vous pouvez utiliser très facilement la méthode de UIViewController:

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated 

Bonne chance.

+0

Mais la méthode presentModalViewController ne fonctionnera pas, parce que je pense que c'est un UIView, pas un UIViewController (bien que je ne sois pas sûr) –

+0

merci pour votre réponse. J'ai effectivement fait cela et cela a fonctionné: [UIView beginAnimations: nil context: NULL]; \t [UIView setAnimationDuration: 1]; \t [UIView setAnimationDelegate: self]; \t CGAffineTransform transformView = myView.transform; \t transformView = CGAffineTransformTranslate (transformView, 0, +210); \t myView.transform = transformView; J'ai modifié les coordonnées de début dans le constructeur d'interface. – DanielaM