title: How do I use a UIWebView in a Table Cell?
body: <p>I'm building a table with some text that is HTML, so I am using a UIWebView as a subview of my custom table cells. I already ran into one problem - as I scrolled down in the table, it would take the UIWebViews a second to update. For example, I'd be viewing Cells at rows numbered 1, 2, and 3. I'd scroll down to say 8, 9, and 10. For a moment, the content of the UIWebView that was visible in cell #8 was the content from cell #1, the content in cell #9 was that from cell #2, and so on. </p>
  
  <p>I learned that the problem was that UIWebViews simply render their text slowly. It was suggested to instead preload the content into the UIWebView as soon as I could instead of waiting until the table receives the cellForRowAtIndexPath. So now, I have a Domain Object which before just had the text content of the WebView - but now it actually has a reference to the UIWebView itself. </p>
  
  <p>But now some of the content in the UIWebView renders, and when I scroll through the table the UIWebView shows only as a grey box. If I touch the grey box, it will actually receive the touch and update the WebView - for example if I touch a link (which I may or may not do, since the box is gray and it would be by a stroke of luck), the page that was linked to will be requested and displayed properly.</p>
  
  <pre><code>- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
  if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
              // I suppose this isn't necessary since I am just getting it from the
              // Domain Object anyway
      content = [[UIWebView alloc] initWithFrame:CGRectZero];
      content.backgroundColor = [UIColor blackColor];
      [self addSubview:content];
      [content release];
  }
  return self;
  }
  
  // called by cellForRowAtIndexPath 
  - (void)setMyDomainObject:(MyDomainObject*)anObject {
  UIWebView *contentWebView = anObject.contentWebView;
  int contentIndex = [self.subviews indexOfObject:content];
  [self insertSubview:contentWebView atIndex:contentIndex];
  }
  </code></pre>