2016-08-09 69 views
1

Ich habe ein großes Problem mit meinem UIBarButtonItem. Ich würde gerne ein benutzerdefiniertes Bild verwenden, abhängig vom Fackelzustand (on/off), aber es überschreibt mein schönes gelbes Symbol zu einem blauen "geschmacklosen" Symbol.UIBarButtonItem überschreiben benutzerdefinierte Bildfarbe - Objective-c

Irgendeine Idee oder einen Link, den ich über das verpasst habe?

+1

schreiben Sie Ihren Code hier – user3182143

+2

versuchen Sie ** UIImageRenderingModeAlwaysOriginal ** in ** ** imageWithRenderingMode – Gokul

+0

Gebrauch einfach UIButton und legen Bild in button.and diese Schaltfläche auf Navigationsleiste –

Antwort

1
UIImage *myImage = [UIImage imageNamed:@"OnImage"]; 
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:nil action:nil]; 

Je nach Zustand können Sie das Bild ändern.

+0

Das ist perfekt! Entschuldigung für meinen Mangel an Code während meiner Erklärung. Ich würde versuchen, ein besserer Benutzer zu sein und anderen Benutzern auf meinen eigenen Fähigkeiten zu helfen. War meine erste Veröffentlichung, und mir hat es gefallen –

+0

@BenoitThierry Wenn diese Antwort Ihr Problem gelöst hat, markieren Sie es als korrekt, indem Sie auf das Häkchen-Symbol klicken. – NSNoob

2

Von Dokumentation von Apple unter Methode beziehen und es ist von iOS 7.0 und höher verfügbar:

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

Um kompatibel zu machen mit unter iOS 7.0 Sie haben diese Methode während der Laufzeit zu prüfen, verfügbar ist oder nicht.

UIImage *yourImage = [UIImage imageNamed:@"yourButifulImage"]; 
if ([yourImage respondsToSelector:@selector(isAvailabeImageWithRenderingMode:)]) 
{ 
    tabBarItem.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
} 
else 
{ 
    tabBarItem.image = yourImage; 
} 

Hoffe, dass dies Ihr Problem lösen wird.

+0

Sorry @NSNoob aus Versehen Ich mache Ihre Änderungen zurück, danke für Ihre Bearbeitung. –

+0

Sie können im Bearbeitungsverlauf immer auf Rollback klicken. Wenn Sie diese Bearbeitung wiederherstellen möchten, können Sie dies jetzt tun. Wenn nicht, nun, es ist dein Beitrag, deine Wahl, ich habe gerade URL-Formatierung hinzugefügt. – NSNoob