title: TouchUpInside boundaries outside of UIButton
body: <p>I'm currently tying to familiarise myself with UIKit under Swift and work out the best way of adding UI elements programmatically. However I'm finding that a touch can end way outside the button in which it began yet still register as a TouchUpInside event. The ViewController below is from a single view application and it is straightforward to start a touch on, say, button 17, end it on button 18 and still have buttonAction() declare "Button tapped: 17".</p>
  
  <p>Any idea what I'm missing here?
  (Edit: This is under Xcode 6 beta 3 BTW.)</p>
  
  <pre><code>// ViewController.swift
  
  import UIKit
  
  class ViewController: UIViewController {
      let scrollView:UIScrollView = UIScrollView()
  
      var GWIDTH:Float = 0.0
      var GHEIGHT:Float = 0.0
  
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          GWIDTH = self.view.bounds.size.width
          GHEIGHT = self.view.bounds.size.height
  
          scrollView.frame = CGRectMake(10, 10, GWIDTH-10, GHEIGHT-20)
          scrollView.contentSize = CGSize(width:GWIDTH-20, height: 0)
          self.view.addSubview(scrollView)
  
          for currentTag in 1...30{
              var currentButton = UIButton.buttonWithType(UIButtonType.System) as UIButton
              currentButton.frame = CGRectMake(100, scrollView.contentSize.height, 100, 50)
              currentButton.backgroundColor = UIColor.greenColor()
              currentButton.setTitle("Test Button \(currentTag)", forState: UIControlState.Normal)
              currentButton.tag = currentTag
              currentButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
  
              scrollView.addSubview(currentButton)
              scrollView.contentSize = CGSize(width:GWIDTH-20,height:2.0+currentButton.frame.size.height+currentButton.frame.origin.y)
          }//next
      }// end viewDidLoad()
  
  
      func buttonAction(sender:UIButton!){
          println("Button tapped: \(sender.tag)")
      }
  
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
      }
  
  
      override func prefersStatusBarHidden() -&gt; Bool {
          return true
      }
  }
  </code></pre>