When there is more than one gesture recognizer for a given
pointer on the screen, the framework disambiguates which
gesture the user intends by having each recognizer join
the gesture arena. The gesture arena determines which
gesture wins using the following rules:

At any time, a recognizer can declare defeat and leave the
arena.  If there’s only one recognizer left in the arena,
that recognizer is the winner.

At any time, a recognizer can declare victory, which causes
it to win and all the remaining recognizers to lose.

For example, when disambiguating horizontal and vertical dragging,
both recognizers enter the arena when they receive the pointer
down event.  The recognizers observe the pointer move events.
If the user moves the pointer more than a certain number of
logical pixels horizontally, the horizontal recognizer
declares victory and the gesture is interpreted as a horizontal
drag.  Similarly, if the user moves more than a certain number
of logical pixels vertically, the vertical recognizer declares victory.