title: Why is hitTest:withEvent: called three times for each touch?
body: <p>I have a subclass of <code>UIView</code> in which I've overridden <code>hitTest:withEvent:</code> as follows:</p>
  
  <pre><code>- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
      NSLog(@"Event = %@", event);
      return self;
  }
  </code></pre>
  
  <p>For each touch in the view, I am seeing three calls to <code>hitTest:withEvent:</code>. These three calls are made before touch up. The output is as follows:</p>
  
  <pre><code>2011-07-01 09:20:58.553 AppName[930:207] Event = &lt;UITouchesEvent: 0x6a08360&gt; timestamp: 4297.16 touches: {(
  )}
  2011-07-01 09:20:58.553 AppName[930:207] Event = &lt;UITouchesEvent: 0x6a08360&gt; timestamp: 4297.16 touches: {(
  )}
  2011-07-01 09:20:58.554 AppName[930:207] Event = &lt;UITouchesEvent: 0x6a08360&gt; timestamp: 4304.54 touches: {(
  )}
  </code></pre>
  
  <p>Based on the timestamps and addresses, it appears as if a single <code>UITouchesEvent</code> object is being used and its timestamp isn't properly set until the third call. Can anyone explain why <code>hitTest:withEvent:</code> gets called three times like this? I'm not looking for a workaround. I just want to understand what's going on.</p>