2012-10-07 28 views
5

Estoy intentando crear una UITabBar que personalizaré con la API de apariencia. Estoy atascado en tratar de eliminar la etiqueta del título del UITabBarItem y cambiar el tamaño de la imagen para que quede centrada. Si solo elimina el texto del título, habrá espacio vacío debajo de la imagen y en la parte inferior de la barra.UITabBarItem personalizado sin etiqueta de título

¿Alguien sabe cómo hacer un UITabBarItem sin un título?

+0

¿Estas seguro que cuando se llama 'initWithTitle: Imagen: Etiqueta:' y pasando nula por el título, y un puntero válido a una imagen, aún perder píxeles a un título vacío? –

+1

Sí, mostrará algunos píxeles en blanco en la parte inferior y desplazará la imagen hacia arriba. Por ejemplo, al hacer que la altura de la barra sea un poco más grande que la imagen del artículo, la imagen se cortará en la parte superior y habrá espacio vacío debajo – mrosales

Respuesta

7

hicieron la misma tarea hoy.

Como no puedo usar el espacio completo de la barra de pestañas para la imagen del artículo, solo cambio el fondo de la barra de pestañas cuando el usuario presiona cualquier pestaña.

  1. El primer paso es preparar imágenes de fondo con botones de tamaño completo para cada pestaña seleccionada.

  2. A continuación, cree clase personalizada y asignarla para el controlador de la barra de pestañas

  3. En la imagen de fondo establecido clase personalizada para la primera pestaña en viewDidLoad:

    [[self tabBar] setBackgroundImage:[UIImage imageNamed:@"tabShopsActive"]]; 
    [[self tabBar] setSelectionIndicatorImage:[UIImage imageNamed:@"tabSelection"]]; 
    
  4. Añadir el cambio de fondo para cada UIController en viewWillAppear:

    UITabBarController *bar = [self tabBarController]; 
    [bar.tabBar setBackgroundImage:[UIImage imageNamed:@"tabDiscountsActive"]]; 
    

Entonces, cuando el usuario presione cualquier pestaña, la barra de pestañas cambia el fondo para mostrar la imagen correcta.

Es mi barra de pestañas que resulta cuando la segunda pestaña seleccionada:

Tab bar without labels

0

Mi solución para el mismo problema:

1, que el origen de barras y más baja, empuje el espacio vacío fuera de la pantalla.

2, reinicie el fondo para asegurarse de que solo cubre la posición correcta.

6

establecer el título a nil y mover el icono de

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); 
Cuestiones relacionadas