iPhone: Bewegen Sie UINavigationBar nach unten?
Ich versuche, die position der Navigationsleiste oben auf dem Bildschirm.
Ich habe versucht, die folgenden in viewWillAppear
:
self.navigationController.view.frame = CGRectMake(0.0, 54.0, 320.0, 426.0);
self.navigationController.navigationBar.frame = CGRectMake(0.0, 0.0, 320.0, 44.0);
Das problem ist, es scheint nur zu arbeiten, das erste mal die Ansicht wird angezeigt. Wenn Sie gehen, um eine andere Registerkarte und wieder zurück, ist die Navigationsleiste am oberen Rand des Bildschirms. Dies geschieht auch, wenn das iPhone gedreht wird.
Sollte ich versuchen Sie zum anpassen der navigation-controller-Rahmen, oder sollte ich stattdessen versuchen, fügen Sie den navigation-controller, um zu einer anderen Ansicht, die unterhalb des oberen Rand des Bildschirms?
Was über die Verwendung von Interface Builder zu tun? Es scheint, ich kann ziehen in der Navigationsleiste, um an jedem Ort im Blick. Ich bin mir nicht sicher, ob ich Haken kann der navigation-controller, um diese aber.
Wenn ich den UINavigationController in IB, wird es an der Spitze des nur zur Ansicht. Aus der Klasse UINavigationController Referenz: @property(nonatomic, readonly) UINavigationBar *navigationBar Diskussion Es zulässig ist, ändern die barStyle oder transluzenten Eigenschaften der Navigationsleiste, sondern müssen Sie nie ändern Sie den Rahmen, Grenzen, oder alpha-Werte direkt. Zum anzeigen oder ausblenden der Navigationsleiste, sollten Sie immer so tun, durch den Navigations-controller, indem Sie seine navigationBarHidden Eigenschaft oder aufrufen der setNavigationBarHidden:animiert: Methode.
Ich landete mit Interface Builder, um das setup eine Ansicht mit einem Bild und eine Navigationsleiste mit einem Navigations-Controller in einem Tab Bar Controller. Nun, wenn ich drücken Sie eine andere Ansicht im code, mir fehlt der Bild-und nav-bar.
In der xibs, die Wurzel anzeigen, die eigentlich gar nicht die Bild-oder nav-bar, das gleiche gilt für die Ansicht und das möchte ich betonen.
Wenn ich den UINavigationController in IB, wird es an der Spitze des nur zur Ansicht. Aus der Klasse UINavigationController Referenz: @property(nonatomic, readonly) UINavigationBar *navigationBar Diskussion Es zulässig ist, ändern die barStyle oder transluzenten Eigenschaften der Navigationsleiste, sondern müssen Sie nie ändern Sie den Rahmen, Grenzen, oder alpha-Werte direkt. Zum anzeigen oder ausblenden der Navigationsleiste, sollten Sie immer so tun, durch den Navigations-controller, indem Sie seine navigationBarHidden Eigenschaft oder aufrufen der setNavigationBarHidden:animiert: Methode.
Ich landete mit Interface Builder, um das setup eine Ansicht mit einem Bild und eine Navigationsleiste mit einem Navigations-Controller in einem Tab Bar Controller. Nun, wenn ich drücken Sie eine andere Ansicht im code, mir fehlt der Bild-und nav-bar.
In der xibs, die Wurzel anzeigen, die eigentlich gar nicht die Bild-oder nav-bar, das gleiche gilt für die Ansicht und das möchte ich betonen.
InformationsquelleAutor Stephen Zyszkiewicz | 2010-10-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl es spät war, ich hoffe das kann noch jemand anderes helfen. Ich verwendet Stephens-code, der in viewDidAppear:animated und die Navigationsleiste bleibt auf Reisen zurück zu dem Reiter. Dies erlaubte mir, verwenden Sie ein logo oberhalb der Navigationsleiste. Ich habe diese in meiner viewController.
InformationsquelleAutor Adam Groves
Ändern kann ich den Rahmen durch überschreiben der frame-Eigenschaft in viewDidAppear meiner benutzerdefinierten navigation-controller. Ich auch hinzufügen, die navigation-controller-Ansicht zu einer anderen Ansicht, die eine Untersicht des Fensters und stellen Sie gleich clipping. Achten, denn auf diese Weise wirst du Locker die standard-Anrufe zu jedem view-Controller angehängt werden, um den navigation-Controller. Ich erinnere mich nicht, wenn ich auch eine benutzerdefinierte Ansicht für meine view-Controller: vielleicht ist Sie ja und mit didMoveToSuperview oder didMoveToWindow overrided nur zu emulieren, die default-Verhalten. Hoffe es hilft und verzeihen Sie mein Englisch.
InformationsquelleAutor marcio