检测 UIPickerView 何时开始滚动/仍在滚动?

Posted

技术标签:

【中文标题】检测 UIPickerView 何时开始滚动/仍在滚动?【英文标题】:Detecting when UIPickerView has started scrolling/still scrolling? 【发布时间】:2014-05-26 13:33:58 【问题描述】:

我一直难以确定 UIPickerView 何时开始滚动。

尝试了不同答案中提出的各种方法,似乎它们都不适用于ios7。

我曾尝试使用 UITapGestureRecognizer,但 PickerView 无法处理它,但滑动和长按手势工作正常。

以下是有效的,但我真的想让 TapGesture 代替工作

pickerView.AddGestureRecognizer(new UILongPressGestureRecognizer(lp => 
        
            PickerValueChanged = false;
        )
        
            MinimumPressDuration = 0.1,
            CancelsTouchesInView = false,
            NumberOfTouchesRequired = 1
        );

任何想法将不胜感激

【问题讨论】:

【参考方案1】:

使用以下代码设法解决了我的问题

pickerView.AddGestureRecognizer(new UITapGestureRecognizer(tap =>
            
                DisableButton();
                Console.WriteLine("tapped");
            )
            
                CancelsTouchesInView = false,
                NumberOfTouchesRequired = 1,
                ShouldRecognizeSimultaneously = delegate  return true; 
            );

一旦选择器开始滚动,我就禁用按钮,然后在 pickerDataModel_ValueChanged 事件中我再次启用按钮。

【讨论】:

为我节省了很多时间!谢谢你。作为参考,这个link 也有帮助,我在转录 objC 时遇到了麻烦(委托 return true;)

以上是关于检测 UIPickerView 何时开始滚动/仍在滚动?的主要内容,如果未能解决你的问题,请参考以下文章

Android:检测 ScrollView 何时停止滚动

UICollectionView:如何检测滚动何时停止

Android:如何检测滚动何时结束

检测窗口垂直滚动条何时出现

记一次 UIPickerView 无法滚动的问题。

检测 UITableView 何时滚动到底部