UINavigationBar Eigenen Titel Anzeigen
Bin ich mit iOS 5 UINavigationBar
's UIAppearance
- Protokoll, um passen alle meine Navigationsleisten.
Hier ist meine Anpassung-Funktion:
- (void)customizeApperance
{
[[UINavigationBar appearance] setTintColor:[UIColor clearColor]];
[[UINavigationBar appearance] setAlpha:0.7];
UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"title.png"]];
[[UINavigationBar appearance] setTitleView:titleView];
}
Habe ich zwei Probleme:
-
Die erste ist, dass die Farben nicht erscheinen als
clearColor
aber schwarz. Irgendwelche Vorschläge? -
Den Titel anzeigen nicht erscheinen überhaupt. Ray Wenderlich zeigt, wie zu tun, dass durch das hinzufügen ein:
[[rootViewController navigationItem] setTitleView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"miniLogo.png"]]]
imapplicationDidFinishLaunching
. Aber das problem dabei ist, dass die Titel würden nur Hinzugefügt werden, dem root-view-controller. Ich bin mit einemUINavigationController
und wenn ich müde zu ersetzen, dierootViewController
mitnavigationController
(der name meiner navigation-controller im AppDelegate), ich kann nicht sehen, die Titel-Ansicht auf alle. Wie kann ich das beheben? Warum funktioniert das nicht incustomizeApperance()
? Ist das nicht der springende Punkt bei der Verwendung Aussehen wird, um nur einen Titel zu schaffen-Ansicht, nachdem (wie ich oben die Funktion) und haben es global in allen Navigationsleisten? Wie kann ich das erreichen?
- Hat jemand eine Idee?
- Dieser Beitrag könnte dir helfen. [custom-uinavigationbar-hintergrund][1] [1]: stackoverflow.com/questions/704558/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
[UIColor clearColor]
ist eine vollständig transparente Farbe (alpha = 0). Einstellung, als Farbe macht den (schwarzen) hintergrund durchscheinen. Vielleicht möchten Sie[UIColor whiteColor]
?titleView
ist eine Eigenschaft vonUINavigationItem
, und jeder view-controller hat seine eigenennavigationItem
. Daher kann keine Titel anzeigen Global. Aber Sie können das Hintergrundbild desUINavigationBar
mit dem Aussehen-Protokoll, vielleicht hilft:clearColor
so, dass der hintergrund dahinter ist transparent dargestellt. Kann das sein getan?self.navigationController.navigationBar.translucent = YES;
.Haben Sie versucht
titleView.opaque = NO;
? Wenn das set zuYES
(d.h. standardmäßig, da Sie mit initWithImage:), die Zeichnung system davon aus, dass Ihre Ansicht füllt seinen gesamten Bereich, und wird nicht Mühe, die Zeichnung etwas überschneidet den Rahmen.setTitleView: ist eine Methode, die auf NavigationItem. Aber Sie rufen es auf Navigationsleiste