Wie hoch ist die Navigationsleiste in iOS 7?

70

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

Im MasterViewController.m, viewDidAppearVerfahren, angemeldet ich

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

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

1) iOS 7 UI Transition Guide

Da die Statusleiste transparent ist, ist die Ansicht dahinter durchsichtig

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 wird von 44 Punkten (88 Pixel) auf 64 Punkte (128 Pixel) geändert.

onmyway133
quelle

Antworten:

91

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 tatsächlich in zwei unterschiedliche Ansichten unterteilt werden können. eine Statusleiste und eine Navigationsleiste. Die Statusleiste reicht von y = 0 bis y = 20 Punkte und die Navigationsleiste 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, aber 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/

poff
quelle
8

Ich habe diese Antwort aus dem Buch Programmieren von iOS 7, Abschnitt Balkenposition und Balkenmetriken erhalten

Wenn eine Navigationsleiste oder Symbolleiste - oder eine Suchleiste (weiter oben in diesem Kapitel beschrieben) - den oberen Bildschirmrand einnehmen soll, sollte gemäß iOS 7 die Höhe erhöht werden, um die transparente Statusleiste zu überlappen. Um dies zu ermöglichen, führt iOS 7 den Begriff einer Balkenposition ein.

UIBarPositionTopAttached

Gibt an, dass sich die Leiste am oberen Bildschirmrand befindet und die Ansicht enthält. Balken mit dieser Position zeichnen ihren Hintergrund nach oben, sodass der Hintergrundinhalt in der Statusleiste angezeigt wird. Verfügbar in iOS 7.0 und höher.

onmyway133
quelle
Weitere Informationen zu UIBarPositionTopAttached finden Sie unter: developer.apple.com/library/ios/documentation/uikit/reference/…
JaredH,