title: UIScrollView with UIButtons 'skipping' when finger drags outside of its superviews bounds
body: <p>I have a <code>scrollView</code> set up as the <code>titleView</code> of a <code>navigationBar</code>. The <code>contentView</code> of the <code>scrollView</code> has 4 buttons in it, all laid out dynamically. The buttons need to cancel with drags and scrolling, so I've subclassed them to <code>setEnabled:NO</code> on themselves when <code>touchesMoved</code>.</p>
  
  <p>When I try to scroll the scrollView, as soon as I pass over the bounds of the superview (i.e., passing the bottom or top bounds navigationBar), the scrollview 'skips' 8 or 11 pixels, depending on if its the top or the button. It has something to do with the <code>UIButtons</code>, because when I just use <code>UILabels</code> the problem doesn't persist.</p>
  
  <p>Relevant code:</p>
  
  <p>Scrollview Initialization:</p>
  
  <pre><code>    menuWidth = 196;
      rowHeight = 40;
      rowMargin = self.frame.size.height - rowHeight;
  
      //drop down menu stuff
      self.scrollView = [[UIScrollView alloc] initWithFrame:self.frame];
  
      scrollView.backgroundColor = [UIColor clearColor];
      scrollView.contentSize = CGSizeMake(self.frame.size.width, (self.frame.size.height)*choices.count);
      scrollView.pagingEnabled = YES;
      scrollView.showsVerticalScrollIndicator = NO;
      scrollView.showsHorizontalScrollIndicator = NO;
      scrollView.clipsToBounds = YES;
      scrollView.canCancelContentTouches = YES;
      scrollView.delaysContentTouches = YES;
      scrollView.delegate = self;
      [self layoutMenu];
      [self addSubview:scrollView];
      [scrollView release];
  </code></pre>
  
  <p>Button initialization (-layoutMenu):</p>
  
  <pre><code>SKScrollableButton *tempButton;
  NSString *text;
  for (int i = 0; i &lt; choices.count; i++) {
      text = (NSString*)[choices objectAtIndex:i];
      if (i == 0) {
          text = [text stringByAppendingString:downArrow];
      }
      CGRect labelRect = CGRectMake(0, i*(rowHeight + rowMargin), menuWidth, rowHeight - 7);
  
      tempButton = [[SKScrollableButton alloc] initWithFrame:labelRect];
      [tempButton setTitle:text forState:UIControlStateNormal];
      [tempButton addTarget:self action:@selector(buttonDown:) forControlEvents:UIControlEventTouchDown];
      [tempButton addTarget:self action:@selector(buttonUpInside:) forControlEvents:UIControlEventTouchUpInside];
      [self.scrollView addSubview:tempButton];
      [tempButton release];
  }
  </code></pre>
  
  <p>No events get called on the buttons when the skipping happens, and only normal-seeming <code>scrollViewDidScroll</code> delegate calls happen on the <code>scrollView</code>.</p>
  
  <p>I've tested and the skipping definitely happens when passing the bounds of the superview, not the bounds of the <code>scrollView</code> itself.</p>