我刚刚发现,如果我执行以下操作:
- 单击将
UIPickerView
动画化到我的 View 中的按钮 - 快速启动轮子,然后驶过最后一项
- 使用按钮关闭 View
那么它还没有选择最后一个项目。
我通过简单地在 didSelectRow
方法被触发时输出到控制台来尝试这个,并且当轮子稳定在最后一个项目上时它会触发。
我能否检测到车轮仍在滚动,以便我可以延迟检查所选值直到它稳定下来?
如果重要的话,我正在用 MonoTouch 编程,但如果您有代码示例,我可以很好地阅读 Objective-C 代码以重新实现它。
最佳答案
由于动画键不起作用,我编写了这个简单的函数来检测 UIPickerView 当前是否正在移动。
-(bool) anySubViewScrolling:(UIView*)view
{
if( [ view isKindOfClass:[ UIScrollView class ] ] )
{
UIScrollView* scroll_view = (UIScrollView*) view;
if( scroll_view.dragging || scroll_view.decelerating )
{
return true;
}
}
for( UIView *sub_view in [ view subviews ] )
{
if( [ self anySubViewScrolling:sub_view ] )
{
return true;
}
}
return false;
}
它最终返回真正的五层深度。
关于ios - UIPickerView,检测 "rolling wheel"起停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202283/