У меня есть UIPickerView
с несколькими компонентами. Некоторые значения выделены серым цветом, и мой pickerView:didSelectRow:inComponent
учитывает это, смещая рассматриваемый компонент средства выбора к ближайшему действительному значению, так же как UIDatePicker
перемещается с «30» на «28», когда вы выбираете «Февраль». Затем он вызывает метод делегата для объявления скорректированного значения.
Когда мой метод настройки вызывает мои UIPickerView
selectRow:inComponent:animated:YES
, значение на экране правильное, но значения от selectedRowInComponent:
устарели (до настройки серого). Однако, если я вызываю selectRow:inComponent:animated:NO
, возвращаемые значения верны, но отсутствие анимации раздражает.
Я попытался обернуть корректировку в блок beginAnimations:
/ commitAnimations
и перехватить значения в UIView
+animationDidStopSelector
, но я все еще получаю устаревшие значения. Кто-нибудь сталкивался с этим раньше?
Проблема легко дублируется.
[picker selectRow:newValue inComponent:i+offset animated:YES];
retValue = [picker selectedRowInComponent:i+offset];
Если у вас есть ДА, чтобы анимировать его, тогда retValue равно 0 (вы называете его устаревшим). При изменении значения NO значение retValue будет таким же, как и значение newValue.