web-dev-qa-db-ger.com

Wie hoch ist die Navigationsleiste in iOS 7?

Ich habe gerade eine einfache iOS 7-App mit der Standardvorlage für Masterdetails erstellt.

In dem MasterViewController.m, viewDidAppear Methode, für die ich mich angemeldet habe

self.navigationController.navigationBar.frame.size.height
self.navigationController.navigationBar.frame.Origin.y

und erhielt 44 und 20 entsprechend. Dies scheint seltsam zu sein, da die Navigationsleiste in iOS 7 nach dem, was ich gelesen habe, eine Höhe von 64 Punkten haben und bei 0 Punkten beginnen sollte, damit sie sich unter der Statusleiste befindet. Was ich lese sind

1) iOS 7 UI Transition Guide

Da die Statusleiste transparent ist, wird die Ansicht dahinter durchgehend angezeigt

2) Verwenden des Hintergrundbilds in der Navigationsleiste

Wenn Ihre App ein benutzerdefiniertes Bild als Hintergrund für die Leiste verwendet, müssen Sie ein "größeres" Bild bereitstellen, damit es sich hinter der Statusleiste erstreckt. Die Höhe der Navigationsleiste wurde von 44 Punkten (88 Pixel) auf 64 Punkte (128 Pixel) geändert.

69
onmyway133

Ich habe diese Antwort aus dem Buch Programming iOS 7, Abschnitt Bar Position and Bar Metrics erhalten

Wenn eine Navigationsleiste oder Symbolleiste - oder eine Suchleiste (weiter oben in diesem Kapitel beschrieben) - den oberen Bereich des Bildschirms einnehmen soll, sollte nach der iOS 7-Konvention die Höhe erhöht werden, um die transparente Statusleiste zu unterdecken. Um dies zu ermöglichen, führt iOS 7 den Begriff einer Balkenposition ein.

IBarPositionTopAttached

Gibt an, dass sich die Leiste am oberen Rand des Bildschirms befindet sowie die zugehörige Ansicht. Balken mit dieser Position zeichnen den Hintergrund nach oben, sodass der Hintergrundinhalt in der Statusleiste angezeigt wird. Verfügbar in iOS 7.0 und höher.

8
onmyway133

Es gibt einen Unterschied zwischen der Navigationsleiste und der Statusleiste. Der verwirrende Teil ist, dass es wie ein festes Merkmal am oberen Bildschirmrand aussieht, die Bereiche jedoch in zwei verschiedene Ansichten unterteilt werden können. eine Statusleiste und eine Navigationsleiste. Die Statusleiste erstreckt sich von y = 0 bis y = 20 Punkte und die Navigationsleiste erstreckt sich von y = 20 bis y = 64 Punkte. Die Navigationsleiste (in der sich der Seitentitel und die Navigationsschaltflächen befinden) hat eine Höhe von 44 Punkten, die Statusleiste und die Navigationsleiste haben zusammen eine Gesamthöhe von 64 Punkten.

Hier ist eine großartige Ressource, die diese Frage zusammen mit einer Reihe anderer Größenunterschiede in iOS7 behandelt: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/

90
poff