Hi,
The best way is to use a framework like EasyTouch, which will handle these kind of complex analysis of touch events and decide what has priority etc.
The problem is the following: when you tap, you get the tap event but dragging hasn't started yet, so usually you have a timer which check if the touch position has moved, if it hasn't it sends a tap event, if it has, then it's a drag, and potentially a swipe.
so, the problem of swiping actions vs getting tap event is complex.
one way to ease the complexity ( only slightly) is to only check for PointerUP events and not tap, which will garantee you don't get mixed up when the touch begins, but you still need a system when you get pointerUP to check if it was a tap, a drag or a swipe.
Bye,
Jean