title: Pan gesture translation being reset between should-begin and handler (with state began) on iOS7
body: <p>I have a pan gesture recognizer to drag a panel up, down, left, or right. When the direction of the pan is not possible I don't allow the recognizer to begin so that the touches can go to other UI elements within the panel.</p>
  
  <p>However, on iOS7 the translation sometimes gets reset between <code>gestureRecognizerShouldBegin:</code> and my gesture handler <code>handlePan:</code></p>
  
  <pre><code>- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer*)panGR
  {
      CGPoint trans = [panGR translationInView:self.view];
      NSLog(@"should begin trans: (%.2f, %.2f)", trans.x, trans.y);
      ...
  </code></pre>
  
  <p>This logs: <code>should begin trans: (18.00, 0.00)</code></p>
  
  <pre><code>- (void)handlePan:(UIPanGestureRecognizer*)panGR
  {
      CGPoint trans = [panGR translationInView:self.view];
  
      switch(panGR.state)
      {
          case UIGestureRecognizerStateBegan:
              NSLog(@"handlePan began trans: (%.2f, %.2f)", trans.x, trans.y);
              ...
  </code></pre>
  
  <p>This logs: <code>handlePan began trans: (0.00, 0.00)</code></p>
  
  <p>Which means the shared code to determine the direction of the pan (right, in this case) works in <code>gestureRecognizerShouldBegin:</code> and allows the gesture to begin, but then can't be determined in <code>handlePan:</code> when the <code>state</code> is <code>UIGestureRecognizerStateBegan</code>.</p>
  
  <p>Is this a bug in iOS7 or has the behaviour deliberately changed to accommodate new gesture types? Also, can anyone suggest a good way to work around this issue?</p>