machte die gleiche Aufgabe nur heute.
Da ich nicht den vollen Platz der Tab-Leiste für Artikelbild verwenden kann, ändere ich einfach den Hintergrund der Tableiste, wenn der Benutzer einen Tab drückt.
Der erste Schritt besteht also darin, Hintergrundbilder mit Schaltflächen in voller Größe für jede ausgewählte Registerkarte zu erstellen.
Dann benutzerdefinierte Klasse erstellen und zuweisen es für Ihre Tab-Leiste Controller
In Ihrem benutzerdefinierten Klasse setzt Hintergrundbild für die ersten Registerkarte in ViewDidLoad:
[[self tabBar] setBackgroundImage:[UIImage imageNamed:@"tabShopsActive"]];
[[self tabBar] setSelectionIndicatorImage:[UIImage imageNamed:@"tabSelection"]];
hinzufügen Änderung Hintergrund für jeden UIController in ViewWillAppear:
UITabBarController *bar = [self tabBarController];
[bar.tabBar setBackgroundImage:[UIImage imageNamed:@"tabDiscountsActive"]];
So jetzt, wenn der Benutzer eine beliebige Registerkarte Tab-Leiste drücken Hintergrund ändern, um das richtige Bild dafür zu zeigen.
Es ist meine resultierende Tab-Leiste, wenn die zweite Registerkarte ausgewählt:
Sind Sie sicher, dass beim Aufruf von 'initwithtitle: Bild: tag:' und für den Titel nil vorbei, und ein gültiger Zeiger auf ein Bild, Sie immer noch Pixel zu einem leeren Titel verlieren? –
Ja, es werden einige leere Pixel unten angezeigt und das Bild wird nach oben verschoben. Wenn zum Beispiel die Balkenhöhe nur geringfügig größer als das Objektbild ist, wird das Bild oben abgeschnitten und es wird darunter ein leerer Platz sein – mrosales