title: iOS - Delayed "Touch Down" event for UIButton in UITableViewCell
body: <p>I have a custom UITableViewCell, which is initialized by the following:</p>
  
  <pre><code>- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  {
      self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
      if (self) {
          NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
          self = [nibArray objectAtIndex:0];
  
          [self setSelectionStyle:UITableViewCellSelectionStyleNone];
  
          [self.downButton setBackgroundImage:[UIImage imageNamed:@"button"] forState:UIControlStateNormal];
          [self.downButton setBackgroundImage:[UIImage imageNamed:@"buttonSelected"] forState:UIControlStateHighlighted];
      }
      return self;
  }
  </code></pre>
  
  <p>The button appears properly, with the appropriate background image, but the highlighted image does not <em>instantly</em> appear when the button is pressed/clicked.  Instead, you have to hold it down for a second or two before the change occurs.  Releasing the button, on the other hand, does have an <em>instant</em> change back to the original background image.</p>
  
  <p>Trying to mitigate the tardy change when switching to the highlighted image, I put the change in the following method:</p>
  
  <pre><code>- (IBAction)downDown:(id)sender {
      [self.downButton setBackgroundColor:[UIColor redColor]];
  }
  </code></pre>
  
  <p>The method above is set for "Touch Down" (opposed to the more common "Touch Up Inside"), and I have removed the <code>setBackgroundImage:forState:</code> for the highlighted state.  Same problem as mentioned above.  The color does <strong>eventually</strong> change to red, but only after clicking and holding on the button for a second or two.</p>
  
  <p>I have a method for the button that is called when "Touch Up Inside" occurs, and that method executes without issue - regardless of whether I quickly tap the button, or click and hold on it for a length of time before releasing.</p>
  
  <p>So why the delay for the "Touch Down" or <code>UIControlStateHighlighted</code>?  I'm trying to provide instant feedback to the user to show that the button has been pressed.</p>
  
  <p>I can provide more code if needed, but these are the only bits that have anything to do with the background appearance.</p>