Bearbeiten : Ich habe John das Kopfgeld zugesprochen, da er sehr viel Mühe in seine Antwort gesteckt hat und es trotzdem bekommen würde, aber es gibt immer noch keine funktionierende Lösung. Ich bin immer noch auf der Suche nach einer Antwort, wenn jemand weiß, wie man das macht, würde es sehr geschätzt werden.
Ich möchte meiner App eine Schaltfläche "Maximieren" hinzufügen, mit der die Navigations- und Tab-Leiste ausgeblendet wird. Die Navigationsleiste und die Tableiste sollten gleichmäßig ein- und ausgefahren werden, und die innere / Inhaltsansicht sollte ebenfalls mit der gleichen Geschwindigkeit wie die Navigationsleiste und die Tableiste erweitert und verkleinert werden.
Ich habe [self.navigationController setNavigationBarHidden: YES/NO animated: YES];
für die Navigationsleiste verwendet und diesen Thread gefunden, um uitabbarcontroller zu verbergen Versteckt die Tableiste.
UITabBar-Klassenerweiterung:
%Vor%Das Problem ist, wenn ich die zwei gleichzeitig benutze (die Navigations- und Tab-Leiste verdeckend / zeigend), ist es nicht sauber. Wenn die Navigationsleiste zuerst kommt, springt alles, was an der Unterseite verankert ist (siehe Beispiel unten), und wenn die Navigationsleiste zuerst kommt, springt die Spitze.
Beispiel: Ich positioniere die UIB-Taste unten rechts und setze ihre Autorisierungsmaske
%Vor%Aber wenn die Navigationsleiste und die Tableiste minimiert sind, springt die UIB-Taste zwischen den beiden Zuständen (gleitet nicht mit der Tab-Leiste). Wenn ich es jedoch so ändere, dass es oben rechts angebracht wird, gleitet es perfekt mit der Navigationsleiste.
Weiß jemand, wie man das löst?
Bearbeiten : Dies ist der Schrank und die eleganteste Lösung, die ich bisher hatte (nur um ein funktionierendes Konzept zu bekommen):
%Vor%Beim Maximieren:
Beim Minimieren:
Wenn ich die Reihenfolge der Minimierungsanimationen neu anordne (so wird das Animationsfeld zuerst aufgerufen), springt das Top in der inneren / Inhaltsansicht
Die Lösung, die ich verwende, sollte das Sprungproblem beseitigen, das Sie sehen.
Diese Lösung wird von einer Objective-C-Kategorie abgeleitet, die Carlos Oliva gefunden hat Github-Seite , und während das Urheberrecht in diesem Code "alle Rechte vorbehalten" ist, schrieb ich ihn und er gab die Erlaubnis zur Verwendung.
Mein Kategoriencode unterscheidet sich nur geringfügig von seinem Code. Außerdem finden Sie unterhalb des Kategoriencodes den Aufrufcode, den ich in meiner App verwende.
von UITabBarController + HideTabBar.m
%Vor%von meinem ScrollableDetailImageViewController.m
%Vor%Probieren Sie diesen Code, wenn es funktioniert. Ich habe diesen Code ein Jahr zuvor geschrieben. Aber es funktioniert immer noch gut für mich.
Ich habe die blockbasierten Animationen nicht verwendet. Weil es geschrieben wurde, als ich neu in iOS bin. Versuchen Sie einfach, sich selbst zu optimieren, wie Sie es wollten.
%Vor%Probieren Sie dies
ausSie können den Tabbar Contrler und die Navigationsleiste mit Animationen wie: -
ausblenden %Vor%Tags und Links objective-c core-animation cocoa-touch uitabbarcontroller