我有一个UIPickerView多个组件.有些值是灰色的,我pickerView:didSelectRow:inComponent尊重这一点,将有问题的选择器组件移动到最接近的有效值,就像UIDatePicker选择"二月"时从"30"移动到"28"一样.然后它调用委托方法来宣布调整后的值.
当我的调整器方法调用我UIPickerView的时selectRow:inComponent:animated:YES,屏幕上的值是正确的,但是来自的值selectedRowInComponent:是陈旧的(从调整灰度值之前).但是,如果我调用selectRow:inComponent:animated:NO,返回的值是正确的,但缺少动画是不和谐的.
我已经尝试在beginAnimations:/ commitAnimations块中包装调整并捕获UIView's中的值+animationDidStopSelector,但我仍然得到过时的值.有没有人遇到过这个?
这个问题很容易复制.
[picker selectRow:newValue inComponent:i+offset animated:YES];
retValue = [picker selectedRowInComponent:i+offset];
Run Code Online (Sandbox Code Playgroud)
如果你有动画它的YES,那么retValue就是0(你称之为陈旧).更改为NO,retValue将与newValue相同.
uipickerview ×1