6

Desea implementar una transición de controlador de vista similar a la utilizada en Facebook y en muchas otras aplicaciones, se adjunta instantánea. ¿Exigirá jugar con el marco de CoreAnimation o está disponible en el kit de herramientas?Cómo estilo de transición facebook

enter image description here

+0

No está disponible en Cocoa Touch, tendrá que tener vistas y ver controladores en la pantalla y manejar arrastrando el superior uno hacia el lado usted mismo. –

+0

¿Alguna materia/recurso para comenzar? – Firdous

+0

Lo siento. No conozco ningún recurso bueno –

Respuesta

4

Usted tiene que usar CoreAnimation a menos que desee importar un marco parte tercera que alguien sugirió, pero es muy simple de usar CoreAnimation y te sugiero que lo aprendas porque es muy poderoso. Aquí está el enfoque más simple posible para darle una idea. Se podría estructurar un poco mejor a sí mismo una vez que se obtiene una caída de ella, para satisfacer sus necesidades:

En su viewcontroller tienen 2 puntos de vista:

@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! 
} 

crearlos en constructor de interfaces, o por código o sin embargo estás acostumbrado Haz que se superpongan para que solo veas la vista superior, y deja que el botón Vista permanezca atrás.

Cuando el usuario pulsa el botón para mostrar el menú:

-(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]; 
} 

Por supuesto, usted debe poner en práctica sus propias subclases UIView para la "vista facebook" y la "vista del menú", etc y el uso de topview y bottomView en el ejemplo anterior.

+0

Hola, también estoy tratando de implementar la misma funcionalidad en mi aplicación de iPhone. Usé dos UIViews como sugirió y usé la animación de alternarMenú para deslizar la vista superior. Pero como tengo un UINavigationController, no se deslizará con la vista superior, simplemente permanece en la misma posición. ¿Qué puedo hacer sobre esto? Aprecia mucho tus sugerencias. – Yasodha

+0

Dado que se trata de una solución "hágalo usted mismo", será complicado combinarla con UINavigationController. Si no puede vivir con NavigationController en la parte superior de su vista, puede dejar de usarlo y crear su propia barra de navegación (lo recomendaría) o simplemente podría ocultarlo mientras el menú esté visible. Estoy seguro de que hay alguna manera de dejarlo de lado también, pero no veo el valor suficiente para tratar de averiguar cómo ... –

+0

@ user1280436 intentas usar navigationcontroller.view para animar y luego la barra de navegación también anima . por favor pruébalo. No he terminado esto antes. –

1

Tome un vistazo a esto, puede ser que le dan un punto de partida: https://github.com/Inferis/ViewDeck/

+0

Hola, también intento implementar la misma funcionalidad en mi aplicación de iPhone. Usé dos UIViews como se sugirió y usé la animación toggleMenu para deslizar la vista superior. Pero como tengo un UINavigationController, no se deslizará con la vista superior, simplemente permanece en la misma posición. ¿Qué puedo hacer sobre esto? Aprecia mucho tus sugerencias. Gracias por adelantado. – Yasodha

Cuestiones relacionadas