在 uiscrollview 中检测 toucesbegin
Posted
技术标签:
【中文标题】在 uiscrollview 中检测 toucesbegin【英文标题】:Detecting toucesbegan in uiscrollview 【发布时间】:2013-06-12 20:33:16 【问题描述】:我在水平滚动视图中添加了垂直滑动。该位工作正常,但我想在用户触摸它时点亮滚动视图上方和下方的目标,以指示向上或向下滑动会导致动作。
我怎样才能做到最好?
使用敲击探测器不会切断它,因为它只会在手指抬起时触发。
使用具有短触发延迟的长按检测器也不起作用,因为它似乎会禁用所有其他手势识别器。
【问题讨论】:
【参考方案1】:您可以继承 UIScrollView 并覆盖这些方法:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
【讨论】:
好答案,但我发现一个我认为工作量少一点的答案......见下文。【参考方案2】:Grr...为什么这总是发生 - 就在你放弃之后,答案就来了!
是的,长按检测器是检测手势开始和结束的方法,但是您需要在合适的对象中实现 UIGestureRecognizerDelegate 协议,并将其设置为所有手势识别器的委托,然后实现此方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
return YES;
这可以防止长按检测器覆盖所有其他手势识别器。
【讨论】:
以上是关于在 uiscrollview 中检测 toucesbegin的主要内容,如果未能解决你的问题,请参考以下文章