6

Chcesz zaimplementować przejście kontrolera widoku podobne do używanego w Facebook i wielu innych aplikacjach, załączona jest migawka. Czy będzie to wymagało grania w środowisku CoreAnimation, czy jest dostępne w zestawie narzędzi?Jak przejść do facebooka

enter image description here

+0

To nie jest dostępne w Cocoa Touch, będziesz musiał mieć widoki i oglądać kontrolery na ekranie i obsługiwać przeciąganie górnego na bok. –

+0

Jakieś początkowe rzeczy/zasób? – Firdous

+0

Przepraszamy. Nie znam żadnego dobrego zasobu. –

Odpowiedz

4

trzeba użyć CoreAnimation chyba że chcesz zaimportować 3. części ramy, które ktoś zasugerował, ale jest bardzo prosty w użyciu CoreAnimation i proponuję go nauczyć, ponieważ jest bardzo potężny. Oto najprostsze możliwe podejście, aby dać ci pomysł. Można je uporządkować trochę lepiej się gdy pojawi się zawiesić go, aby dopasować swoje potrzeby:

W swojej viewcontroller have 2 widoki:

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

utworzyć je w interfejsie konstruktora, lub za pomocą kodu lub jakkolwiek jesteś do tego przyzwyczajony. Nakładaj je na siebie, aby zobaczyć tylko topView, i pozwól, by widok z tyłu był widoczny.

Gdy użytkownik naciśnie przycisk, aby wyświetlić 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]; 
} 

Oczywiście, należy zaimplementować własną podklasy UIView do „widzenia Facebook” i „widok menu” etc i używać do Topview i bottomView w powyższym przykładzie.

+0

Witam Próbuję również wdrożyć tę samą funkcjonalność w mojej aplikacji iPhone. Użyłem dwóch UIViews, jak zasugerowałeś i użyłeś animacji toggleMenu do przesunięcia topView. Ale ponieważ mam kontroler UINavigationController, nie będzie on przesuwał się z topView, po prostu pozostaje w tej samej pozycji. co mogę z tym zrobić? Doceń swoje sugestie. – Yasodha

+0

Ponieważ jest to rozwiązanie "zrób to sam", będzie to skomplikowane, aby połączyć go z UINavigationController. Jeśli nie możesz żyć z kontrolerem NavigationController znajdującym się nad widokiem, możesz przestać go używać i utworzyć własny pasek nawigacji (polecam to) lub po prostu ukryć go, gdy menu będzie widoczne. Jestem pewien, że jest jakiś sposób, aby odepchnąć to na bok, ale nie widzę w tym wystarczającej wartości, aby spróbować dowiedzieć się, jak ... –

+0

@ user1280436 spróbuj użyć navigationcontroller.view do animowania, a następnie pasek nawigacji również animować . spróbuj, nie robię tego wcześniej. –

1

Spójrz na to, może to daje punkt wyjścia: https://github.com/Inferis/ViewDeck/

+0

Cześć Próbuję też zaimplementować tę samą funkcjonalność w mojej aplikacji iPhone. Użyłem dwóch sugestii UIView i użyłem animacji toggleMenu do przesunięcia topView. Ale ponieważ mam kontroler UINavigationController, nie będzie on przesuwał się z topView, po prostu pozostaje w tej samej pozycji. co mogę z tym zrobić? Doceń swoje sugestie. Z góry dziękuję. – Yasodha

Powiązane problemy