title: UIButton TouchUpInside/TouchUpOutside not always called?
body: <p>I have a <code>UISwipeGestureRecognizer</code> that animates accordingly to which <code>UIButton</code> is highlighted at the time of the gesture, it finishes the animation when the <code>UIButton</code> calls TouchUpInside/TouchUpOutside. This works fine for a downward swipe gesture on my <code>UIButton</code> but for some reason when I try a upward swipe (on another <code>UISwipeGestureRecognizer</code>), it doesn't run the function. (yes it is the same <code>UIButton</code>) This is what I did in viewDidLoad:</p>
  
  <pre><code>    [myButton addTarget:self action:@selector(myAction) forControlEvents:(UIControlEventTouchUpInside|UIControlEventTouchUpOutside)];
  </code></pre>
  
  <p>For the action I just used:</p>
  
  <pre><code>    -(void) myAction{
      //Do whatever I want to do, in this case finish the animation.
      }
  </code></pre>
  
  <p>None of the code that I run for the swipe gesture should even effect the <code>UIButton</code>, so I guess I'm wondering if anyone has any idea what I could be doing wrong here?</p>
  
  <p>Edit: It seems like the problem is that when I drag upwards too fast the button loses the "focus" (the highlight), therefore TouchUpInside/TouchUpOutside aren't getting called, but when I drag downwards at any speed the <code>UIButton</code> stays highlighted the entire time, anyway to fix this? (see GIF)
  <img src="https://i.stack.imgur.com/b8DuO.gif" alt="Watch the highlight end before the mouse leaves the button, then when I do it again, but slower it works fine..."></p>