2012-10-10 18 views
9

L'utilizzo del codice seguente per personalizzare UIButtons regolari influisce anche su UIBarButtonItems e sui pulsanti di cancellazione nei campi di testo.Come impostare l'aspetto per un UIButton senza influire su UIBarButtonItems?

[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal]; 

faccio non desidera personalizzare gli ultimi elementi a tutti, solo regolare pulsanti rotondi rect. Realizzo l'uso di appearanceWhenContainedIn: potrebbe essere usato per impostare un aspetto personalizzato per UIBarButtonItems e UITextField, ma vorrei che questi pulsanti rimanessero standard. La sottoclasse non è un'opzione qui in quanto non dovrebbe essere richiesta per un compito così semplice.

C'è una domanda simile, ma non risolve il problema. Why does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?

+1

Sono stato in grado di risolvere il problema UITextField impostando specificamente quelli su un'immagine di sfondo chiara. Non è una bella soluzione però. –

+0

Come stai inizializzando UIBarButtonItems? Stai impostando la proprietà "customView" come oggetto UIButton? Se è possibile fornire un codice di esempio per come si crea un UIBarButtonItem, sono abbastanza sicuro di poterlo aiutare ... eseguo numerose personalizzazioni con proxy di aspetto e pulsanti di barra/UIButtons nelle mie app e non ho riscontrato questi problemi. – DiscDev

risposta

2

Una soluzione che ho usato prima è a zero la proprietà "BackgroundImage" per UIButtons contenuta all'interno di un UINavigationBar:

[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal]; 

Ciò dovrebbe consentire di personalizzare UIButtons in altri casi, senza toccare il quelli all'interno di un UIBarButtonItem in UINavigationBar.

Problemi correlati