title: When do "finger" events get sent as Gestures to UIGestureRecognizer vs touchesBegan/touchesMoved/touchesEnded to UIView
body: <p>I come from macOS/Cocoa &amp; Mouse Events, and I'm trying to get a hang of these "Finger"(my own name for it) events</p>
  
  <hr>
  
  <p>My question is: </p>
  
  <p>When a "Finger" event is happening on a <code>UIView</code> (let's call <code>MyView</code>), when does it get sent as a <code>Gesture</code> to a <code>UIGestureRecognizer</code> on <code>MyView</code>, and when does it get sent as a <code>touchesBegan/touchesMoved/touchesEnded</code> to <code>MyView</code></p>
  
  <hr>
  
  <p>I have searched with all possible queries I could think of, and really only found a few decent sources, but nothing that answers exactly what I'm looking for</p>
  
  <p><a href="https://stackoverflow.com/questions/14856906/touchesbegan-touchesended-touchesmoved-for-moving-uiview">touchesBegan, touchesEnded, touchesMoved for moving UIView</a></p>
  
  <p><a href="https://stackoverflow.com/questions/11851464/uigesturerecognizers-vs-touchesbegan-touchesmoved-touchesended-accuracy">UIGestureRecognizers vs touchesBegan/touchesMoved/touchesEnded (accuracy)</a></p>
  
  <p>My best guess right now is that the difference between <strong>touchBegan/touchMoved/touchEnded</strong> and a Gesture recognizer depends on the speed of the finger? </p>
  
  <p>So if you tap, and slowly move, the underlying <code>UIView</code> receives the <code>touchMoved</code> events.  If you Tap and drag quickly, a gesture is created and passed to the the GestureRecognizer of the underlying <code>UIView</code></p>
  
  <p>My current guess is that when the finger touches down, event runloop detects this finger, and fires a <code>touchesBegan</code>.  As you move your finger around, it fires <code>touchesMoved</code>.<br>
  However, if you are moving quickly enough, or in a way that the runtime thinks that you're making a gesture, it instead creates a Gesture and fires a message to the <code>UIGestureRecognizer</code>, instead of sending <code>touchesMoved</code></p>
  
  <p>I am currently trying to test out this hypothesis, but it's pretty tedious and I don't have a really good sample project to test with, so I figured I'd crowdsource some insight if possible.  I'll report back if I figure it out myself as well</p>