我正在尝试将2添加UITapGestureRecognizers到视图中,一个用于单击,一个用于双击事件.单击识别器按预期工作(单独).但我似乎无法让双击识别器工作.
试过具有类似性质的实验:cancelsTouchesInView,delaysTouchesBegan和delaysTouchesEnded,但仍然无法正常工作.
当我双击时,单击识别器将始终被激活,双击事件也将被发送到超级视图.但似乎根本没有通知自定义双击识别器.
文件似乎表明上述3个属性可用于此目的.但我只是不确定应该设置什么值以及哪个识别器(单个,双个或两个).希望熟悉这一点的人可以提供帮助.
以下是最新更新的代码块.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}
Run Code Online (Sandbox Code Playgroud) 当用户单击我的视图时,我需要一个特定的方法来运行.当用户双击时,我需要另外一种方法.
问题是双击会触发单击,它会在我的逻辑中引入错误.我不能使用UIGestureRecognizer,因为我需要跟踪这些点.
我尝试了一些布尔,但没有机会.我也试过了cancel/perfomSelector-delay技术,但它不起作用(这很奇怪,因为其他论坛上的其他人说它有效,也许模拟器触摸检测有所不同?)
我试图让用户设置板块的位置(拖动,旋转),但我需要知道片段交叉点,剪切到板区域等,这就是为什么一个简单的布尔值不能解决问题.
提前致谢!