有没有办法检测任何交互的开始和结束?我注意到有诸如 touchesBegin 和 touchesEnd 之类的方法,但这些方法仅适用于触摸事件。是否有所有可能的交互(如平移、缩放、触摸等)的通用方法?
我只需要知道交互何时开始和结束。
有没有办法检测任何交互的开始和结束?我注意到有诸如 touchesBegin 和 touchesEnd 之类的方法,但这些方法仅适用于触摸事件。是否有所有可能的交互(如平移、缩放、触摸等)的通用方法?
我只需要知道交互何时开始和结束。
是的,您可以使用以下代码:
if (sender.state == UIGestureRecognizerStateEnded)
或者:
if (sender.state == UIGestureRecognizerStateBegan)
最简单的做法是为UIGestureRecognizer
您感兴趣的事件连接子类:
UITapGestureRecognizer
UIPinchGestureRecognizer
UIRotationGestureRecognizer
UISwipeGestureRecognizer
UIPanGestureRecognizer
UIGestureRecognizerStateBegan
从那里,您可以检查识别器的状态,并在交互开始 ( ) 和结束时 (UIGestureRecognizerStateEnded
或UIGestureRecognizerStateCancelled
)执行您需要的任何逻辑UIGestureRecognizerStateFailed
。
您很可能希望使用一些互斥,以便在识别第一种手势时移除其他识别器以确保它们不会踩到彼此的脚趾。然后,当第一个识别的手势结束时,您可以重新添加所有这些手势。