alguien me puede ayudar en este extraño problema, de todos modos hay que cambiar el color del texto del elemento uitabbar del gris predeterminado al blanco y el color seleccionado al azul.cambiando el color del texto de uitabbaritem
Respuesta
Consulte las respuestas this question y this question, pero tenga en cuenta que su aplicación podría ser rechazada por modificar los componentes predeterminados de la barra de tareas de esa manera.
UITabBarItem es más o menos no personalizable por lo que si es necesario, se puede:
A caballo por iteración a través de la subvistas
UITabBar
‘s, encontrar las etiquetas usando-[NSObject isKindOfClass:]
y cambiar su color.Cree su propio
UITabBar
y mueva los elementos personalizados de la barra de pestañas.Pruebe alternativas como Three20's
TTTabBar
.
¿Qué obj debería buscar dentro de las subvistas ?! Me conecté y vi que hay un montón de 'UITabBarButton', ¡pero no sé cómo usar esa clase !? –
Terminé creando una vista de barra de pestañas personalizada para el registro. –
EDIT: la siguiente ya no es la mejor práctica ya que las nuevas API se añadieron a la SDK de iOS
Subclase UITabBarController (como CustomTabBarController en este ejemplo) y poner el siguiente código en su archivo de implementación .m:
@interface CustomTabBarController()
@property (nonatomic, retain) NSArray *tabTitleLabels;
@end
@implementation CustomTabBarController
@synthesize tabTitleLabels;
- (NSArray *)tabTitleLabels
{
// Check if we need to update the tab labels
if ([tabTitleLabels count] != [self.viewControllers count])
self.tabTitleLabels = nil;
// Create custom tab bar title labels
if (!tabTitleLabels)
{
tabTitleLabels = [[NSMutableArray alloc] init];
for (UIView *view in self.tabBar.subviews)
{
if ([NSStringFromClass([view class]) isEqualToString:@"UITabBarButton"])
{
for (UIView *subview in view.subviews)
{
if ([subview isKindOfClass:[UILabel class]])
{
UILabel *label = (UILabel *)subview;
UILabel *newLabel = [[UILabel alloc] init];
newLabel.font = label.font;
newLabel.text = label.text;
newLabel.backgroundColor = label.backgroundColor;
newLabel.opaque = YES;
newLabel.frame = CGRectMake(0, 0, label.frame.size.width, label.frame.size.height -1);
[subview addSubview:newLabel];
[((NSMutableArray *)tabTitleLabels) addObject:newLabel];
[newLabel release];
}
}
}
}
}
return tabTitleLabels;
}
// Customize the desired colors here
- (void)recolorTabBarTitleLabels
{
for (UILabel *label in self.tabTitleLabels)
{
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor blackColor];
}
UILabel *selectedLabel = [self.tabTitleLabels objectAtIndex:self.selectedIndex];
selectedLabel.textColor = [UIColor blueColor];
selectedLabel.backgroundColor = [UIColor colorWithWhite:.15 alpha:1];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self recolorTabBarTitleLabels];
}
- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController
{
[self recolorTabBarTitleLabels];
}
- (void)viewDidUnload
{
[super viewDidUnload];
self.tabTitleLabels = nil;
}
- (void)dealloc
{
[tabTitleLabels release];
[super dealloc];
}
@end
Esto puede ser un año de retraso, pero espero que mi código guarda a alguien algo de trabajo!
Nota: no está diseñado para admitir la activación/desactivación de nuevos elementos de la barra de pestañas, aunque solo tendría que restablecer tabTitleLabels a nil para hacerlo.
vieja pregunta, pero tengo una nueva respuesta que se soporta en iOS 5 en adelante (también estoy usando LLVM 4.0 literales)
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blueColor] }
forState:UIControlStateSelected];
+ para actualizar con las mejores prácticas nuevas. – DetartrateD
estuvo de acuerdo con el comentario de Detartrate, ya que cuando puedes crear un diccionario usando @ {} ... Awesomeness. Muy JSONesque. –
Desde el compilador de LLVM 4.0. Consulte los documentos para ver todas las demás cosas que puede hacer con los literales: http://clang.llvm.org/docs/ObjectiveCLiterals.html. También puede convertir su proyecto actual a la nueva sintaxis literal: XCode> Editar> Refactorizar> Convertir a moderno Objective-C Sintaxis ... Hace alrededor de un año que digo. – bandejapaisa
UITextAttributeTextColor está en desuso desde iOS 7. Uso NSForegroundColorAttributeName en lugar.
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor] }
forState:UIControlStateNormal];
Y en Swift
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.blackColor()], forState: .Normal)
para establecer el color de 2 UIControlState
a la vez puede utilizar union
:
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.redColor()], forState: UIControlState.Selected.union(UIControlState.Highlighted))
Puede que le ayuda
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.whiteColor()], forState: .Selected)
Swift3
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.brown], for: .normal)
Debe ser sencillo!
[[UITabBar appearance] setTintColor:[UIColor blackColor]];
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente [reputación] (https://stackoverflow.com/help/whats-reputation) podrá [comentar cualquier publicación] (https://stackoverflow.com/help/privileges/comment); en su lugar, [brinde respuestas que no requieran aclaración del autor de la pregunta] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-instead). - [De la opinión] (/ review/low-quality-posts/18808729) –
Bienvenido a StackOverflow. Las respuestas con solo código en ellas tienden a marcarse para su eliminación ya que son de "baja calidad". Lea la sección de ayuda para responder preguntas y luego considere agregar algún comentario a su respuesta. – Graham
Desde iOS 10 es posible ajustar el unselectedItemTintColor
en la UITabBar
.
El tintColor
del UITabBar
es del color del elemento seleccionado.
Si desea ir a valores únicos para cualquier artículo, también puede configurar el tabBarItem.titleTextAttributes(for:)
(mencionado anteriormente) también en el artículo directamente en combinación con tabBarItem.image
y tabBarItem.selectedImage
.
- 1. Cambiando el color del texto
- 2. cambiando el color del texto de un UILabel
- 3. cambiando el color del borde del cuadro de texto usando javascript
- 4. Cambiando el color del encabezado de sección en UITableview
- 5. cambiando el color de una parte del texto en stylus css?
- 6. Cambiar el color del texto en Eclipse
- 7. Cambiando el color del desplazamiento en scrollview en android
- 8. Cambiando el color del desplazamiento en notación científica en matplotlib
- 9. Matplotlib: Cambiando el color de un eje
- 10. Cambiando el color de UITableViewCellAccessoryCheckmark y UITextField
- 11. Cambiar el color del texto en el campo de texto
- 12. Posición del título de UITabBarItem
- 13. Cambiando el texto del botón hecho en el teclado
- 14. Cambiando dinámicamente el texto del encabezado de columna en JTable
- 15. Cambiar el color del texto en MoreNavigationController
- 16. Cambiar el color del texto onclick
- 17. ¿Hace que el color del enlace sea el mismo que el del texto sin conocer el color del texto?
- 18. Establecer el color del texto global?
- 19. Notepad ++ ¿cambia el color del texto?
- 20. ¿Cómo cambiar el color del texto seleccionado?
- 21. jquerymobile cambiando dinámicamente el texto para la emisión del botón
- 22. Cambiando el color de <option> en firefox
- 23. Cambiando el color de los encabezados de sección de UITableView
- 24. título UIButton color del texto
- 25. Tab Android Color del texto
- 26. ¿Cambiar el color del texto del cuadro de grupo?
- 27. Cambiando el color de fondo subyacente de una ventana oscilante
- 28. Cambiando el color de error estándar para geom_smooth
- 29. Cambiando el color de la barra de herramientas de MFMailComposeViewController
- 30. Cambiando el color de la serie en diagramas altos dinámicamente
muchas gracias por su respuesta rápida, pero esto no me ayuda, ya que soy capaz de cambiar el color de las imágenes y este código hace lo mismo ... por favor sugiérame cómo cambiar el color del texto del uitabbaritem. – yogendra
Esta pregunta estaba cambiando la imagen en el elemento de la barra de pestañas, necesito cambiar el color del texto en la pestaña barítima –