web-dev-qa-db-de.com

Wie ändere ich die Symbolleistenfarbe des Navigationscontrollers in iOS?

Ich versuche, die Farbe meiner Navigationsleiste zu ändern. Das folgende RGB ist für eine dunkelrote Farbe, aber meine Navigationsleiste wird nach dem folgenden Code weiß.

navigationController.navigationBar.tintColor = [UIColor colorWithRed:117 green:4 blue:32 alpha:1];
16
aryaxt

Dies liegt daran, dass die Werte für CGFloat von 0.0 to 1.0 und nicht von 0 to 255 reichen und Werte über 1.0 als 1.0 interpretiert werden.

Hier ist die Dokumentation: UIColor

28
Oscar Gomez

Mach einfach folgendes:

navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1];
16
TommyG

Sie müssen jeden Wert für 255 teilen. Versuchen Sie:

[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]
6
fncap

Ich finde, wenn Sie aus dem Internet oder aus Photoshop kommen, ist es einfacher, mit hexadezimalen Farben zu arbeiten. Sie können dieses Makro dafür verwenden:

//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

Und benutze es so:

self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf);
3
monzonj

Ah, das ist lustig. Die echte Antwort ist, dass .tintColor die Farbe für die Navigationselemente des Navigationscontrollers festlegt (wie eine Schaltfläche "Fertig").

0
broken_image