2013-10-10 15 views
5

Das ist, was ich will. Es lädt einige meiner View-Controller.iOS7 navigationBar und TabBar Farbe verhält sich seltsam

Hallo,

Ich gehe Nüsse versuchen, mit dem der Farbton aller meiner Viewcontrollers das gleiche zu machen. Einige scheinen viel dunkler zu sein als andere. Alles was ich will ist die Lichtfarbe über seine ...

This is what I want

Manchmal habe ich diese hässlichen dunkelgrau stattdessen bekommen ... Ich bin nicht sicher, was ich falsch mache. Ich habe die .m-Datei überprüft und bin nicht mit dem dem Farbton oder irgendetwas einstellen ... nicht sicher, warum es würde auf jedem Viewcontroller im Einklang ...

This is what I get

Jede Hilfe wäre toll. Vielen Dank!

+1

Verhalten von einigen der Eigenschaften von 'UINavigationBar' wurde von' iOS7' geändert. Ich habe das bereits ausführlich in meiner [Antwort] (http://stackoverflow.com/a/19029973/1603072) erklärt. – Bhavin

Antwort

16

in iOS7 Navigationsleiste ist standardmäßig translucent=YES so ändern, nur auf NO wie unten: -

self.navigationController.navigationBar.translucent=NO; 

und setzen Navigaitonbar Farbe oder eine andere Eigenschaft anpassen wie Bellow diesen Code in AppDelegate Klasse setzen didFinishLaunchingWithOptions und verwenden appearance für die Anwendung weltweit: -

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { 

    // Load resources for iOS 6.1 or earlier 
    [[UINavigationBar appearance]setTintColor:NavigationColor]; 
} else { 
    [[UINavigationBar appearance]setTintColor:[UIColor whiteColor]]; // it set color of bar button item text 
    [[UINavigationBar appearance]setBarTintColor:[UIColor GreenColor]]; // it set color of navigation 
    [[UINavigationBar appearance] setBarStyle:UIBarStyleDefault]; // it set Style of UINavigationBar 
    [[UINavigationBar appearance]setTitleTextAttributes:@{UITextAttributeTextColor : [UIColor whiteColor]}]; //It set title color of Navigation Bar 
    // Load resources for iOS 7 or later 

} 

Für tabBar gleiche auch dies zu NO

Standard translucent=YES Änderung ist
+0

Danke! OK, das scheint zu funktionieren, wenn ich es in meiner ViewDidLoad-Methode platziere, aber warum kann ich die Farbe nicht ändern? Ich habe 'self.navigationController.navigationBar.translucent = NO; 'in der viewDidLoad-Methode gesetzt, aber ich möchte die Farbe in blueColor ändern. Ich ziele auf ios7 – user2492064

+0

Ahh hat es. Vielen Dank!!!! – user2492064

+0

in der App-Delegiertenklasse ** [[UINavigationBar Aussehen] setBarTintColor: [UIColor blueColor]]; ** oder bei viewDidLoad ** self.navigationController.navigationBar setBarTintColor: [UIColor blueColor]]; ** –

3

Ein häufiger Fehler ist das Setzen der view.backgroundColor des View-Controllers auf clearColor (sowohl programmgesteuert oder über Storyboard). Dies macht die Ansicht tatsächlich schwarz (da unter der klaren Ansicht nichts ist), so dass alles, was über dieser Ansicht ist und die translucent -Eigenschaft auf YES gesetzt hat, dunkelgraue Farbe (schwarze Farbe + Standard-iOS-Unschärfe) zeigt.

Um dies zu beheben, entweder stellen Sie die translucent Eigenschaft auf NO (wie Nitin Gohel sagte) oder die view.backgroundColor auf weiß gesetzt, die tatsächlichen Standardfarbe seiner ist.

Hoffe das hilft noch jemandem!

Verwandte Themen