我在水平滚动视图中添加了垂直滑动。该位工作正常,但我想在用户触摸它时点亮滚动视图上方和下方的目标,以指示向上或向下滑动会导致动作。
我怎样才能做到最好?
使用敲击探测器不会切断它,因为它只会在手指抬起时触发。
使用具有短触发延迟的长按检测器也不起作用,因为它似乎禁用了所有其他手势识别器。
我在水平滚动视图中添加了垂直滑动。该位工作正常,但我想在用户触摸它时点亮滚动视图上方和下方的目标,以指示向上或向下滑动会导致动作。
我怎样才能做到最好?
使用敲击探测器不会切断它,因为它只会在手指抬起时触发。
使用具有短触发延迟的长按检测器也不起作用,因为它似乎禁用了所有其他手势识别器。
您可以继承 UIScrollView 并覆盖这些方法:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Grr...为什么总是会发生这种情况-就在您放弃之后,答案就来了!
是的,长按检测器是检测手势开始和结束的方法,但是您需要在合适的对象中实现 UIGestureRecognizerDelegate 协议,并将其设置为所有手势识别器的委托,然后实现此方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
这可以防止长按检测器覆盖所有其他手势识别器。