J'ai un UIPickerView
avec plusieurs composants. Certaines valeurs sont grisées, et mon pickerView:didSelectRow:inComponent
honore cela en déplaçant le composant sélecteur en question à la valeur valide la plus proche, tout comme UIDatePicker
passe de "30" à "28" lorsque vous sélectionnez "Février". Ensuite, il appelle une méthode déléguée pour annoncer la valeur ajustée.UIPickerView selectedRowInComponent: renvoie les données périmées après que le code l'a ajusté
Lorsque mon procédé de réglage appelle mes UIPickerView
« s selectRow:inComponent:animated:YES
, la valeur sur l'écran est correct, mais les valeurs de selectedRowInComponent:
sont périmées (d'avant l'ajustement des valeurs de gris). Cependant, si j'appelle selectRow:inComponent:animated:NO
, les valeurs retournées sont correctes, mais le manque d'animation est discordant.
J'ai essayé envelopper l'ajustement dans un beginAnimations:
/commitAnimations
bloc et attraper les valeurs de +animationDidStopSelector
UIView
, mais je reçois encore des valeurs périmées. Quelqu'un at-il déjà rencontré cela?
Le problème est facile à dupliquer.
[picker selectRow:newValue inComponent:i+offset animated:YES];
retValue = [picker selectedRowInComponent:i+offset];
Si vous avez OUI pour l'animer, alors retValue est 0 à l'esprit (vous l'appelez obsolète). En passant à NO, retValue sera le même que newValue.