Domanda

appena passato a iOS 4 sul mio iPhone 3GS e alcuni dei miei apps rotto.

Un problema che ho avuto è che ho avuto un UIToolbar con alcuni pulsanti, colorati al rosa, che hanno funzionato bene sul sistema operativo 3.1.3. Dopo l'aggiornamento a iOS 4, la barra degli strumenti era ancora tinto, ma i pulsanti che conteneva non erano più colpiti dalla tinta. La barra degli strumenti era rosa, mentre i bottoni erano regolari-blu.

guardò intorno alla ricerca sulla rete, ma non ha trovato di riferimento di una cosa del genere.

Chiunque sa che cosa ha rotto nel processo?

È stato utile?

Soluzione

(deve essere franco qui - sapevo che la risposta prima di pubblicare, non sapeva come caricare questi dati per StackOverflow Pensiero la soluzione che ho trovato è stato prezioso per gli altri, così ha voluto postare qui sono nuovo.. qui, quindi per favore non critiche aspre :))

Così alla fine il problema provocato da, AFAICT, un cambiamento nel comportamento del sistema operativo.

Come indicato il codice di tinta ha lavorato prima dell'aggiornamento ed è stato scritto in questo modo:

// Toolbar content               
NSArray *items=[NSArray arrayWithObjects: ... ]; // PSEUDO CODE HERE
[toolbar setItems:items]; 

// Add tint
toolbar.tintColor = [UIColor colorWithRed:0.83 green:0.43 blue:0.57 alpha:0.5];

Quello che dovevo fare, era appena invertire l'ordine delle cose:

// Add tint
toolbar.tintColor = [UIColor colorWithRed:0.83 green:0.43 blue:0.57 alpha:0.5];

// Toolbar content               
NSArray *items=[NSArray arrayWithObjects: ... ]; // PSEUDO CODE HERE
[toolbar setItems:items]; 

(Se è stato creato UIToolbar in Interface Builder, si può cambiare di tinta lì, e che si applica per i pulsanti pure).

Credo che la tinta aggiornato tutti i pulsanti prima di iOS 4, mentre in iOS 4 che fa non e quando l'aggiunta di pulsanti, verifica della disponibilità di tinta esistente. Ma questa è solo una supposizione. La soluzione funziona in ogni caso ..

Spero che questo aiuti qualcuno, e che non ha violato alcuna regola sacra SO ...

Cheers!

Altri suggerimenti

Bene, sembra più simile a un bug di sistema operativo di una caratteristica, dal momento che le barre di navigazione fanno cambiare il colore della loro voce quando si imposta il loro tintColor.

Abbiamo scoperto che se si cambia lo stile del prodotto, rinfresca il loro colore come un effetto collaterale. Facendo seguito ha lavorato nel nostro caso. I pulsanti originali sono delimitati, così li cambiamo per pianura e messi al bordata di nuovo. Si può fare un codice più complicato e generico che salva lo stile corrente, stabilisce un altro e poi switchs indietro. Sono solo troppo pigro per farlo. :. D In ogni caso, si ottiene l'idea

toolbar.tintColor = //<some dynamically obtained UIColor>

// Workaround to properly set the UIBarButtonItem's tint color in iOS 4
for (UIBarButtonItem * item in toolbar.items)
{
    item.style = UIBarButtonItemStylePlain;
    item.style = UIBarButtonItemStyleBordered;
}

Saluti, Rula.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top