小编Eri*_*oyd的帖子

UIPickerView selectedRowInComponent:在代码调整后返回过时数据

我有一个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

7
推荐指数
1
解决办法
1984
查看次数

标签 统计

uipickerview ×1