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
Odpowiedz
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.
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
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 ... –
@ user1280436 spróbuj użyć navigationcontroller.view do animowania, a następnie pasek nawigacji również animować . spróbuj, nie robię tego wcześniej. –
Spójrz na to, może to daje punkt wyjścia: https://github.com/Inferis/ViewDeck/
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
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. –
Jakieś początkowe rzeczy/zasób? – Firdous
Przepraszamy. Nie znam żadnego dobrego zasobu. –