6

Vuoi implementare una transizione del controller di visualizzazione simile a quella utilizzata in Facebook e in molte altre app, l'istantanea è allegata. Richiede di giocare con il framework CoreAnimation o è disponibile nel toolkit?Come transizione stile Facebook

enter image description here

+0

Non è disponibile in Cocoa Touch, sarà necessario visualizzare e visualizzare i controller sullo schermo e gestirne il trascinamento in alto. –

+0

qualsiasi risorsa/risorsa avviata? – Firdous

+0

Siamo spiacenti. Non conosco nessuna risorsa valida –

risposta

4

Devi usare Core Animation a meno che non si desidera importare un quadro parte terza che qualcuno ha suggerito, ma è molto semplice da usare CoreAnimation e ti suggerisco di impararlo perché è molto potente. Ecco l'approccio più semplice possibile per darti un'idea. Si potrebbe strutturare un po 'meglio se stessi una volta che si ottiene un blocco di esso, per soddisfare le vostre esigenze:

Nella tua viewcontroller hanno 2 guardati:

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

crearli nel costruttore di interfaccia, o per Codice o comunque sei abituato. Fai in modo che si sovrappongano a vicenda in modo che tu veda solo il topView e lasci che il buttomView rimanga indietro.

Quando l'utente preme il pulsante per visualizzare il 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]; 
} 

Naturalmente, è necessario implementare le proprie sottoclassi UIView per la "vista facebook" e il "menu Visualizza", ecc e utilizzare per Topview e bottomView nell'esempio sopra.

+0

Ciao Sto anche cercando di implementare la stessa funzionalità nella mia applicazione iphone. Ho usato due UIViews come suggerito e ho usato l'animazione toggleMenu per far scorrere il topView. Ma dal momento che ho un UINavigationController non scorrerà con il topView, rimane semplicemente nella stessa posizione. cosa posso fare per questo? Apprezzo molto i tuoi suggerimenti. – Yasodha

+0

Poiché si tratta di una soluzione "fai da te", sarà complicato combinarla con UINavigationController. Se non riesci a vivere con il NavigationController rimanendo in cima alla tua vista, potresti smettere di usarlo e creare la tua barra di navigazione (lo consiglierei) o potresti semplicemente nasconderlo mentre il menu è visibile. Sono sicuro che c'è un modo per metterlo da parte, ma non vedo abbastanza valore in questo per cercare di scoprire come ... –

+0

@ user1280436 provi a usare navigationcontroller.view per animare, quindi la barra di navigazione si anima anche . per favore provalo, non l'ho già fatto prima –

1

Date un'occhiata a questo, si potrebbe dare un punto di partenza: https://github.com/Inferis/ViewDeck/

+0

Ciao, sto anche cercando di implementare la stessa funzionalità nella mia applicazione per iPhone. Ho usato due UIViews come suggerito e ho usato l'animazione toggleMenu per far scorrere il topView. Ma dal momento che ho un UINavigationController non scorrerà con il topView, rimane semplicemente nella stessa posizione. cosa posso fare per questo? Apprezzo molto i tuoi suggerimenti. Grazie in anticipo. – Yasodha