2013-12-18 8 views
8

In iOS7 scheint UIToolbar keine kleine Linie (der Schatten) an den oberen oder unteren Rändern zu haben, was es schwierig macht, sich vom Rest der App zu unterscheiden. Wie kann ich den Schatten am unteren Rand der Symbolleiste wiederherstellen, wenn er sich oben auf dem Bildschirm befindet?Fehlender Schatten (Haaransatz) auf iOS7 UIToolbar

EDIT: Ich sollte klarstellen, dass meine Symbolleiste am oberen Rand des Bildschirms positioniert ist. Nachdem ich die Dinge bewegt habe, habe ich gemerkt, dass es einen Schatten zeichnet, aber es ist oben und daher außerhalb des Bildschirms. Ich möchte, dass der Schatten wie eine UINavigationBar unten erscheint.

+0

Haben Sie versucht, einen Schatten zu setzen, und nicht den CALayer, der die UIToolbar unterstützt? –

+0

Ah ... ein Gedanke ... es ist wahrscheinlich nur den Schatten oben in der Werkzeugleiste außerhalb des Bildschirms zu zeichnen. Ich möchte einen Schatten auf der Unterseite, wie UINavigationBar. – GoldenJoe

+0

@GoldenJoe Sie müssen den Delegaten der Symbolleiste implementieren. Siehe meine Antwort. –

Antwort

21

Dies liegt daran, dass Symbolleisten standardmäßig standardmäßig unten angehängt sind, sodass die Schattenlinie oben angezeigt wird (wenn sie sich unten befinden). Sie müssen die Delegierten der Symbolleiste setzen und die folgenden UIBarPositioningDelegate Verfahren wie so implementieren:

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar 
{ 
    return UIBarPositionTop; //or UIBarPositionTopAttached 
} 
+3

Das macht es. Scheint so, als sollte es nur eine Eigenschaft sein, die du einstellen kannst. Danke für die Hilfe. – GoldenJoe

2

Ich lief in einem Fall, in dem eine Ansicht, die zwischen einer oberen und unteren Symbolleiste und konfiguriert ist, um Auto-Resize positioniert wurde zu füllen der Raum. Es wurde jedoch über der unteren Symbolleiste überlagert und die automatische Größenanpassung überdeckte den oberen Schatten der unteren Symbolleiste. Die Lösung bestand darin, die Schichtung in Interface Builder so anzupassen, dass die Symbolleisten über den anderen Ansichten lagen.