Comment transition de style facebook

Vous voulez mettre en œuvre une transition controller de vue similaire à celle utilisée sur Facebook et de nombreuses autres applications, snapshot est joint. Cela nécessitera-t-il de jouer avec le framework CoreAnimation ou est-il disponible dans la boîte à outils?

entrez la description de l'image ici

Vous devez utiliser CoreAnimation sauf si vous voulez importer un framework de 3ème partie que quelqu'un a suggéré, mais il est très simple d'utiliser CoreAnimation et je vous suggère de l'apprendre car il est très puissant. Voici l'approche la plus simple possible pour vous donner une idée. Vous pouvez le structurer un peu mieux vous-même une fois que vous l'avez compris, pour répondre à vos besoins:

Dans votre viewcontroller ont 2 vues:

@interface yourViewController : UIViewController { // The facebook view in the example, this will be the view that moves. // Init this view with x=0 and let it cover the whole screen. IBOutlet UIView *topView; // The fb menu in the example // Init this view so that it stays behind the topView. IBOutlet UIView *bottomView; BOOL menuVisible; // init to false in viewDidLoad! } 

Créez-les dans le générateur d'interface, ou par code ou de quelque manière que ce soit. Faites-les se chevaucher les uns les autres pour que vous ne voyiez que le TopView, et laissez le ButtomView derrière lui.

Lorsque l'user appuie sur le button pour afficher le menu:

 -(IBAction)menuButtonPressed:(id)sender { // Set up animation with duration 0.5 seconds [UIView beginAnimations:@"ToggleMenu" context:nil]; [UIView setAnimationDuration:0.5]; // Alter position of topView CGRect frame = topView.frame; if (menuVisible) { frame.origin.x = 0; menuVisible = NO; } else { frame.origin.x = 300; //Play with this value menuVisible = YES; } topView.frame = frame; // Run animation [UIView commitAnimations]; } 

Bien sûr, vous devez implémenter vos propres sous-classs UIView pour la "vue facebook" et la "vue de menu" etc. et l'utiliser pour topView et bottomView dans l'exemple ci-dessus.

Jetez un oeil à cela, il pourrait vous donner un sharepoint départ: https://github.com/Inferis/ViewDeck/