vertikale Ausrichtung von UINavigationItems

7

Ich habe die Höhe der UINavigationBar auf 100px angepasst und möchte gerne Schaltflächen in diesen benutzerdefinierten Balken einfügen.

Alles ist gut, außer der Button scheint auf dem Boden der Navigationsleiste zu sitzen, egal was passiert. Ich kann es nicht auf die Mitte oder den oberen Rand der Navigationsleiste ausrichten.

Hier ist der Code; Zuerst erstelle ich im App-Delegate einen Navigationscontroller und füge rechts eine Schaltfläche hinzu.

%Vor%

dann ändere ich die Größe der Navigationsleiste im "temp" View Controller wie folgt:

%Vor%

Ich habe auch versucht, eine benutzerdefinierte Ansicht zum rightBarButtonItem hinzuzufügen, aber ich kann die hinzugefügte benutzerdefinierte Ansicht nicht vollständig oben berühren.

Und der Code für diesen unglücklichen Versuch:

%Vor%

Kann jemand UIBarButtonItems in einer UINavigationBar vertikal ausrichten?

    
Jiho Kang 03.07.2011, 23:37
quelle

4 Antworten

7

Option 1:

  • Erstellen Sie die UINavigationBar-Unterklasse
  • Innerhalb dieser Klasse überschreiben Sie - (void)layoutSubviews , wo Sie UIBarButtonItems
  • neu positionieren
  • im Interface Builder setzen Sie die Klasse UINavigationBar auf die UINavigationBar-Unterklasse

Beispiel:

innerhalb der Unterklasse von UINavigationBar:

%Vor%

view controller:

%Vor%

Option 2 (das Einfügen von UIBarButtonItem funktioniert nicht):

%Vor%     
alhcr 04.07.2011, 02:02
quelle
13

Damit werden Seitentitel und alle Schaltflächen um 20 px verschoben:

%Vor%     
kraag22 04.12.2014 13:40
quelle
12

Die aktuell akzeptierte Antwort von alhcr (Option 1) funktioniert nicht, wenn Sie nur eine rightBarButtonItem und keine übrig haben. Es macht auch eine Annahme über die Subview-Anordnung der UINavigationBar, die nicht garantiert ist und sich sehr wohl in einer zukünftigen Version von iOS ändern könnte. Hier ist eine bessere Möglichkeit zum Anpassen von Rahmen für Navigationsschaltflächen:

%Vor%     
nrj 02.07.2013 19:47
quelle
0

Ich habe die Lösung dieses Problems gefunden, indem ich die Bildrandeinschübe der benutzerdefinierten Schaltfläche angepasst habe. Ich hatte die Anforderung in der App, um die Höhe der Navigationsleiste zu erhöhen und nach dem Erhöhen der Höhe macht die rechteBarButtonItem und leftBarButtonItem Bilder Problem gelöst.

Finde den folgenden Code: -

%Vor%     
iGW 12.09.2017 07:18
quelle