2013-09-27 16 views
31

Quando sono passato da iOS 6 a iOS 7, ho notato che l'utilizzo del metodo setValue:animated: non anima più il processo di scorrimento. Qualcun altro ha riscontrato questo problema e trovato una soluzione?UISlider non si anima in iOS7

mi limiterò a aggiungere del codice per mostrare ho fatto nulla di complicato:

//Variable declaration 
IBOutlet UISlider *s; //Connected in the .xib 

//Button pressed 
- (IBAction)buttonPressed:(id)sender 
{ 
    [s setValue:1 animated:YES]; 
} 

E salta direttamente a 1 se si preme il pulsante.

risposta

64

Compatibile a iOS 4 soluzione/soluzione:

[UIView animateWithDuration:1.0 animations:^{ 
    [_sliderTest setValue:0.90 animated:YES]; 
}]; 

Sembra che iOS 7 wont animare se non si specifica sia questo blocco e animato: SI. iOS 6.0 sembra ignorare il blocco di animazione ed eseguire il proprio blocco interno. Un po 'strano Specifica una durata di 2.0 per vedere l'animazione di iOS 7 due volte più lento di iOS 6 con lo stesso codice.

+0

Trovato anche questa soluzione, completamente strano! Ma questa è la strada da percorrere! –

+1

Sì, devi ancora farlo in iOS8. L'utilizzo di entrambi i metodi in modo indipendente non funziona. – Sid

+3

Ancora rotto in iOS 9. Questa soluzione alternativa funziona ancora. –