title: iOS: inconsistent behaviour with UIButton's UIControlEventTouchUpOutside event
body: <p>I want to get dual functionality from a UIButton.</p>
  
  <p>When the user touches down on the button,  I want it to immediately trigger behaviour A</p>
  
  <p>But if the user then drags his finger outside of the button before releasing it,  I would like to also trigger behaviour B upon release.</p>
  
  <p>So, </p>
  
  <pre><code>        [presetButton addTarget: self 
                           action: @selector( presetButtonHit: )
                 forControlEvents: UIControlEventTouchDown ];  
  
          [presetButton addTarget: self 
                           action: @selector( presetButtonSwipe: )
                 forControlEvents: UIControlEventTouchUpOutside ];  
  </code></pre>
  
  <p>As a test case I will simply log 'A' or 'B' from the respective action methods.</p>
  
  <p>A always gets hit correctly.</p>
  
  <p>However, B is sporadic.   I can methodically finger down, drag well outside of the button, wait a second and release.   And it usually wont' fire.   Alternatively if I do a quick flick,  it is more likely to fire.  But still 50-50.</p>
  
  <p>All I have is a UIView with a background image and six buttons.</p>
  
  <p>What can I do to track this one down? </p>
  
  <p>I would rather get to the bottom of it than mess around manually tracking touches up and down;  but if I have to do that, is there any clean way?  From what I can see the it is going to be a royal PITA, and I'm going to have to figure out whether touches up/down gets hit before my button's touch up/down gets hit, set flags, etc.</p>