2012-06-27 16 views
14

Estoy haciendo una aplicación basada en tabbarController. Tengo 3 elementos de tabbar.¿Cómo cambiar el tamaño de la fuente del nombre del elemento del controlador de la barra de pestañas?

Mi pregunta es: ¿Cómo puedo cambiar el estilo de fuente para el título en el elemento de la barra de pestañas?

+0

es que el tiempo de ejecución? – janusbalatbat

+1

Confíe en mí ninguno de los usuarios lee el texto, prefiero pasar más tiempo en un muy buen icono descriptivo – doNotCheckMyBlog

+0

sí. Lo quiero a través de programáticamente –

Respuesta

11
[self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
              [UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont, 
              [UIColor blackColor], UITextAttributeTextColor, 
              [UIColor grayColor], UITextAttributeTextShadowColor, 
              [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeTextShadowOffset, 
              nil]]; 
+1

no viene ... muestra advertencia y termina a partir de ahí –

+1

¿Por qué se sube 7 veces cuando no existe tal método para UITabBarItem? –

+3

Para cualquier persona que todavía tenga problemas con esto: el método escrito arriba es incorrecto. Necesita agregar el parámetro 'forState:' después de 'setTitleTextAttributes:'. Luego compilará sin advertencias y funcionará como se espera. – element119

0

Lo siento, no creo que haya una manera de hacer esto. Si estás desesperado, deberás escribir tu propia barra de pestañas.

+1

¿Por qué se sube el voto? Hay soluciones propuestas para esta pregunta anterior: http://stackoverflow.com/q/2576592/199364. ¿O estás diciendo que la pregunta aquí es diferente? – ToolmakerSteve

+0

@ToolmakerSteve Absolutamente correcto. Verifica mi respuesta. –

0

Lamentablemente, esto no es posible actualmente en iOS a menos que construyas tu propia barra de pestañas personalizada, que no es muy difícil con la creación de storyboards en iOS5.

0

No es posible, cree atención al cliente al pestaña de la barra de subclases UITabBar

0

Si ve este error: 'UITextAttributeTextShadowOffset' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value., prueba esto.

NSShadow *shadow = [[NSShadow alloc] init]; 
shadow.shadowColor = [UIColor grayColor]; 
shadow.shadowOffset = CGSizeMake(0.0, 0.5); 

NSDictionary *attribute = [NSDictionary dictionaryWithObjectsAndKeys: 
[UIFont fontWithName:@"AmericanTypewriter" size:10.0f], NSFontAttributeName, 
[UIColor blackColor], NSForegroundColorAttributeName, 
shadow,NSShadowAttributeName,nil]; 
[[UITabBarItem appearance] setTitleTextAttributes:attribute forState:UIControlStateNormal]; 
-1

Pruebe esto.

[[UITabBarItem appearanceWhenContainedIn:[UITabBar class], nil] 
    setTitleTextAttributes:@{NSForegroundColorAttributeName: 
    [UIColor colorWithRed:0/255.0f green:130/255.0f blue:202/255.0f alpha:1.0], 
    NSFontAttributeName:[UIFont fontWithName:@"Signika-Semibold" size:20.0] 
    } 
forState:UIControlStateNormal]; 
+0

. Cuide aclarar qué hace exactamente? – MeanGreen

1

Esto cambiará ur fuentes UITabBarItem una vez por todas a lo largo de la aplicación

Para uso Swift esto en didFinishLaunching de AppDelegate:

Swift 3:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blue,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .normal) 

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.red,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .selected) 
Cuestiones relacionadas