2013-09-27 19 views
14

Sto provando a cambiare il colore del pollice sul mio UISlider - In qualche modo, tuttavia, rimane sempre bianco. Cambiare il colore della barra sembra funzionare abbastanza bene.iOS 7 - UISlider thumbTIntColor non cambia

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    self.redSlider.thumbTintColor = [UIColor redColor]; 
} 

Mi manca qualcosa qui?

Ho trovato anche this Question qui, che indica che potrebbe essere un bug - qualche idea?

+0

vedere http://stackoverflow.com/questions/18983726/uislider-thumbtintcolor-doesnt-change-on-ios-7-fine-on-ios-6 anche –

risposta

1

Hai impostato qualcosa in uno xib/storyboard?

Se sì, invece di cambiamento è nella viewDidLoad, cercare di impostare il colore in

- (void)viewDidLayoutSubviews 

Se si lavora, è perché questo è chiamato dopo che i valori di carico di storyboard, dove viewDidLoad viene chiamato prima.

+0

Questo non funziona, provare te stesso, non esiste una soluzione per questo. Semplicemente non cambierà! –

+1

Ha risolto il mio progetto con esso in quel momento, scusa se non funziona per te. – Atheryl

8

Sì, è un bug. Per evitare di preparare un'immagine fittizia, utilizzare questo codice.

[s setThumbImage:s.currentThumbImage forState:UIControlStateNormal]; 
s.thumbTintColor = UIColor.redColor; 
+1

Anche se questo hack funziona, cambia l'immagine del pollice per avere un effetto 3D come il vecchio stile iOS 6. iOS 7 dovrebbe avere uno stile piatto. – Pwner

+0

Questo approccio non funziona nel mio scenario (all'interno di React Native). Se ho 'setThumbImage' su un'immagine reale nel mio' Images.xcassets', allora funziona. C'è qualche alternativa a 's.currentThumbImage'? – vitch