title: What is the most robust way to force a UIView to redraw?
body: <p>I have a UITableView with a list of items. Selecting an item pushes a viewController that then proceeds to do the following. from method viewDidLoad I fire off a URLRequest for data that is required by on of my subviews - a UIView subclass with drawRect overridden. When the data arrives from the cloud I start building my view hierarchy. the subclass in question gets passed the data and it's drawRect method now has everything it needs to render.</p>
  
  <p>But.</p>
  
  <p>Because I don't call drawRect explicitly - Cocoa-Touch handles that - I have no way of informing Cocoa-Touch that I really, really want this UIView subclass to render. When? Now would be good!</p>
  
  <p>I've tried [myView setNeedsDisplay]. This kinda works sometimes. Very spotty.</p>
  
  <p>I've be wrestling with this for hours and hours. Could someone who please provide me with a rock solid, guaranteed approach to forcing a UIView re-render.</p>
  
  <p>Here is the snippet of code that feeds data to the view:</p>
  
  <pre><code>// Create the subview
  self.chromosomeBlockView = [[[ChromosomeBlockView alloc] initWithFrame:frame] autorelease];
  
  // Set some properties
  self.chromosomeBlockView.sequenceString     = self.sequenceString;
  self.chromosomeBlockView.nucleotideBases    = self.nucleotideLettersDictionary;
  
  // Insert the view in the view hierarchy
  [self.containerView          addSubview:self.chromosomeBlockView];
  [self.containerView bringSubviewToFront:self.chromosomeBlockView];
  
  // A vain attempt to convince Cocoa-Touch that this view is worthy of being displayed ;-)
  [self.chromosomeBlockView setNeedsDisplay];
  </code></pre>
  
  <p>Cheers,
  Doug</p>