2012-10-07 11 views
5

Ich versuche, eine UITabBar zu erstellen, die ich mithilfe der Aussehen-API anpassen werde. Ich versuche, das Titeletikett aus dem UITabBarItem zu entfernen und das Bild so zu vergrößern, dass es zentriert wird. Wenn Sie nur den Titeltext löschen, wird unter dem Bild und dem unteren Rand der Leiste ein leerer Bereich angezeigt.Benutzerdefiniertes UITabBarItem ohne Titeletikett

Kann jemand ein UITabBarItem ohne Titel erstellen?

+0

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? –

+1

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

Antwort

7

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.

  1. Der erste Schritt besteht also darin, Hintergrundbilder mit Schaltflächen in voller Größe für jede ausgewählte Registerkarte zu erstellen.

  2. Dann benutzerdefinierte Klasse erstellen und zuweisen es für Ihre Tab-Leiste Controller

  3. 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"]]; 
    
  4. 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:

Tab bar without labels

0

Meine Lösung für das gleiche Problem:

1, machen die Bar Ursprung y niedriger, drücken Sie den leeren Raum außerhalb der Bildschirm.

2, setzen Sie den Hintergrund zurück, um sicherzustellen, dass er nur die richtige Position abdeckt.

6

den Titel nil Set und das Symbol bewegen

self.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil 
               image:[[UIImage imageNamed:@"icon_tabbar_inactive.png"] 
                imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] 
             selectedImage:[[UIImage imageNamed:@"icon_tabbar_active.png"] 
                imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

// Move the tabbar icon to the middle of tabbar 
self.tabBarItem.imageInsets = UIEdgeInsetsMake(6.0, 0.0, -6.0, 0.0); 
Verwandte Themen