2012-06-10 11 views
19

En mi archivo de implementación AppDelegate utilizo estas líneas de código para definir fuentes personalizadas y colores de tabBarItems:aspecto UITabBarItem -setTitleTextAttributes mantiene el registro "estado = 1 se interpreta como UIControlStateHighlighted"?

[[UITabBarItem appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
[UIColor grayColor], UITextAttributeTextColor, 
[UIFont fontWithName:@"Arial" size:0.0], UITextAttributeFont, 
nil] forState:UIControlStateNormal]; 

[[UITabBarItem appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
[UIColor whiteColor], UITextAttributeTextColor, 
[UIFont fontWithName:@"Arial" size:0.0], UITextAttributeFont, 
nil] forState:UIControlStateHighlighted]; 

Por alguna razón (desconocido) los siguientes mensajes se registran, uno para cada tabBarItem:

button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted and UIControlStateDisabled. state = 1 is interpreted as UIControlStateHighlighted. 

No se pudo encontrar nada utilizando los motores de búsqueda estándar, por lo que busco su ayuda. ¿Qué estoy haciendo mal y cómo arreglar esto?

Gracias de antemano por cualquier sugerencia.

+0

El mío también tiene el mismo problema. Creo que simplemente lo ignoramos. Pero es realmente molesto si necesita ver otros mensajes en la consola. Puede ver este hilo: http://www.iphonedevsdk.com/forum/iphone-sdk-development/105017-uitabbaritem-logging-state-1-interpreted-uicontrolstatehighlighted.html –

+5

Al leer la respuesta de Camille, reemplazo "UIControlStateHighlighted" con "UIControlStateSelected" y el mensaje se ha ido. Se ve diferente a la respuesta de Camille, pero mi caso es para "UITabBarItem" mientras que Camille es para "UIBarButtonItem". –

+1

Wayne Liu, deberías publicar esto como una respuesta. Parece que la advertencia de la consola es realmente engañosa. Para 'titleTextAttributes' en una UITabBar los estados aceptados parecen ser' UIControlStateNormal', 'UIControlStateSelected' y' UIControlStateDisabled'. Pero no 'UIControlStateHighlighted' como sugiere la advertencia. – Lukas

Respuesta

5

que tenían el mismo problema porque yo estaba usando:

[[UIBarButtonItem appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIColor whiteColor], UITextAttributeTextColor, nil] forState:UIControlStateSelected]; 

lo cambié a:

[[UIBarButtonItem appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIColor whiteColor], UITextAttributeTextColor, nil] forState:UIControlStateHighlighted]; 

... y el problema desapareció. ¡Espero que esto ayude!

52

Simplemente cambie "UIControlStateHighlighted" a "UIControlStateSelected". ¡Espero que esto ayude!

+0

evil (: ... funcionó para mí. – Ans

+1

funciona. Es como si hicieran el mismo trabajo, ¿por qué Apple se queda con ambos? – thedp

Cuestiones relacionadas