2013-10-17 7 views
5

Ich habe UIBarButtonItems in meiner App mit einem hellen Hintergrund, und ich wollte die Symbole mit einer dunkleren Farbe anstelle des Standardweißes tönen.iOS 6, Wie tupfe ich UIBarButtonItem weiße Symbole?

So:

enter image description here

konnte ich Text tönen

[[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeTextColor: [UIColor blackColor]} forState:UIControlStateNormal];, 

verwenden, aber ich kann nicht herausfinden, wie die Symbolfarben zu ändern.

Ist es möglich, das zu tun?

+0

möglich duplicate von [Kann ich ein UIBarButtonItem mit einem farbigen Bild haben?] (Http://stackoverflow.com/questions/1835260/can-i-have-a-uibarbonnamitem-with-a-colored-image) –

+0

+1. Habe dieses Ding nie bemerkt. – Bhavin

Antwort

0

Der folgende Code könnte in Ihrem Fall hilfreich sein.

[myBarButton_name setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor yellowColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal]; 
+0

Ich habe noch nicht getestet, aber 1: Ich glaube, es wird nur Textfarbe ändern (nicht Symbolfarbe), da es das gleiche ist, was ich tat, auf eine andere Weise geschrieben; 2: Ich würde eher globale Änderungen vornehmen als Button für Button. – Guilherme

+0

meinst du willst du die Farbe von UIBarButtonItem ändern? – iPatel

+0

@ Guilherme http://stackoverflow.com/questions/4518617/setting-bar-button-item-color-in-a-custom-navigation-bar und http://stackoverflow.com/questions/13677703/change-uibarbuttonitems -color – iPatel

1

Ich glaube, das in der Navigationsleiste funktionieren kann:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 

[[UIBarButtonItem appearance] setTintColor:[UIColor blackColor]]; 

Und natürlich können Sie auch die ganze Tönung in den Storyboard-Optionen ändern (nicht auf meinem Mac, so kann‘ t Ihnen genau sagen, wo)

3

ein UIButton mit Ihrem eigenen Bild erstellen, dann erstellen Sie ein UIBarButtonItem mit den UIButton als benutzerdefinierter Ansicht:

UIImage *buttonImage = [UIImage imageNamed:@"image"]; // Tint this image programmatically 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:buttonImage forState:UIControlStateNormal]; 
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 
[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *barButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease]; 

Beachten Sie, dass dies hauptsächlich für iOS 6 und niedriger ist. In iOS 7+ erhalten Sie dieses Verhalten kostenlos mit tintColor.