Auf meiner Navigationsleiste habe ich ein paar Rightbarbuttonitems mit benutzerdefinierten Symbolen (die Icon -Bilder sind weiß, was gut mit dem Grundfarbschema von iOS 6 funktioniert).
Unter iOS 7 ersetzt das Laden der Bilder mit Initwithtitle (siehe Code -Snippet 1) die "weiße" Farbe im Symbol durch den richtigen globalen Farbton (eine bestimmte Farbe von Dunkelblau in diesem Fall).
Code -Snippet 1:
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:(UIBarButtonItemStyle) UIBarButtonSystemItemCancel target:(self) action:@selector(refreshList)];
refreshButton.image = [UIImage imageNamed:@"RefreshIcon.png"];
Ich musste jedoch InitWithCustomView verwenden, um eine seltsame Verhaltensänderung zu überwinden, die dazu führte, dass die Symbole aus dem Sicht bewegen. Die Grundidee bestand darin, die Größe der Symbole spezifisch festzulegen. InitWithCustomView hat das Größenproblem gelöst, zeigt jedoch nicht die Schaltflächenbilder mit der globalen Farbton an, sie werden in der Farbe des Bildes (weiß) angezeigt. Code -Snippet 2 zeigt, wie ich die Schaltfläche mit initWithCustomView erstelle.
Code -Snippet 2:
CGRect frameCustomButton2 = CGRectMake(0.0, 0.0, 18.0, 18.0);
UIButton *customButton2 = [[UIButton alloc] initWithFrame:frameCustomButton2];
[customButton2 setBackgroundImage:iconRefreshButton forState:UIControlStateNormal];
UIBarButtonItem *barCustomButton2 =[[UIBarButtonItem alloc] initWithCustomView:customButton2 ];
barCustomButton2.image = iconRefreshButton;
[customButton2 addTarget:self action:@selector(refreshList) forControlEvents:UIControlEventTouchUpInside];
All dieser Code ist natürlich in (void) viewDidload. Ich habe Dinge ausprobiert wie:
barCustomButton2.tintColor = [UIColor blackColor]; //doesn't work
oder [BarbuttonAppearance settColor: [Uicolor BlackColor]]; // funktioniert nicht
Und sie überschreiben die weiße Farbe des Bildes nicht. Es ist fast so, als würde die Erstellung der benutzerdefinierten Ansicht nach der Aussicht auf die globale Farbfarbe erfolgen?
Wie kann ich sicherstellen, dass das Button -Symbol den globalen Farbton annimmt?
Vielen Dank!