Ho avuto un effetto strano che sembra un bug in iOS7 - ma spesso in passato, quando ho pensato di aver trovato un bug nelle API di Apple, è risultato essere il mio proprio malinteso.Bug UIDatePicker? UIControlEventValueChanged dopo aver toccato il minimo interno
Ho un UIDatePicker con datePickerMode = UIDatePickerModeCountDownTimer e minuteInterval = 5. Inizializzo la durata a 1 ora e la presenta all'utente, dove appare come un selettore a due colonne con ore e minuti. (Fin qui tutto bene.)
L'utente sta pensando "20 minuti" e quindi scorre la colonna Ora a 0. A questo punto il selettore legge 0 ore e 0 minuti e iOS7 non è bello con quello, quindi fa scorrere automaticamente la ruota dei minuti su 5. Viene richiamato il gestore My UIControlEventValueChanged e il countDownDuration legge 5 minuti. (Ancora buono)
Ora l'utente afferra la ruota dei minuti e la trascina a 20. E ... il mio gestore di UIControlEventValueChanged non viene chiamato. (Cattivo)
Se ho qualche altro evento nell'interfaccia utente controllare il selettore di date a questo punto, vedo che countDownDuration è impostato su 20. Ma non avevo modo di sapere che l'utente lo ha cambiato, al momento è stato cambiato. Questo è molto ripetibile: accade sempre al primo cambio DOPO che il picker si rifiuta di essere impostato su 0 (avanzando a se stesso fino a 5 minuti).
Si noti che questo è in iOS7; non si verifica in iOS6 (forse perché il selettore è perfettamente contenuto per essere impostato su 0 minuti).
Quindi ... mi manca qualcosa qui? O si tratta di un vero bug in iOS7? E in quest'ultimo caso, qualcuno conosce meglio il funzionamento di un timer che controlla periodicamente l'intervallo corrente?
Riprodotto. Sembra un insetto per me. – Kevin