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. Cambiando el color de UITableViewCellAccessoryCheckmark y UITextField
- 10. Matplotlib: Cambiando el color de un eje
- 11. Posición del título de UITabBarItem
- 12. Cambiar el color del texto en el campo de texto
- 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. ¿Hace que el color del enlace sea el mismo que el del texto sin conocer el color del texto?
- 17. Notepad ++ ¿cambia el color del texto?
- 18. Establecer el color del texto global?
- 19. ¿Cómo cambiar el color del texto seleccionado?
- 20. jquerymobile cambiando dinámicamente el texto para la emisión del botón
- 21. Cambiando el color de <option> en firefox
- 22. Cambiando el color de los encabezados de sección de UITableView
- 23. título UIButton color del texto
- 24. Tab Android Color del texto
- 25. ¿Cambiar el color del texto del cuadro de grupo?
- 26. Cambiando el color de fondo subyacente de una ventana oscilante
- 27. Cambiando el color de error estándar para geom_smooth
- 28. Cambiando el color de la barra de herramientas de MFMailComposeViewController
- 29. Cambiando el color de la serie en diagramas altos dinámicamente
- 30. Cambiando el color de relleno de MovieClip Actionscript 3
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 –