Displaying Lots Of RichText : Choosing the best option

Viewed 3980

What is the best way to display lots of RichText (HTML formatted)

At the moment I'm working on an app for a forum. As you'd expect the posts on the site have lots of HTML formatting, lists, images bold text, colored text, etc...

Now there are several options I can think of (non of them ideal, please if you think of any other options post them in the comments):

  • Custom Cells using NSAttributedString+HTML + DTAttributedTextView for each post?

    Problems: I used the NSAttributedString+HTML categories in the app elsewhere and it was less then ideal, creating an NSAttributedString seems to be quite expensive (slow) even in small amounts. For 10+ posts each of which may be the length of an entire article would be awful + although DTAttributedTextView supports the IMG html tag (an most tags) it doesn't support remote loading of images unless you specify their width and height in the img tag. And for a forum where an IMG tag could be a smiley (10*10) or a screenshot (640*960) there's no way to predict that. (Since writing this NSAttributedString+HTML, which is now renamed DTCoreText, has added full support for <img> tags and improved greatly!)

  • Custom Cells with a UIWebView in them for each post?

    This one I considered for quite a while, however when reading this blog post I realised a problem that would cause, Smooth scrolling. The idea of having a native application for a site is that it is better then using a simple UIWebView to view the sites mobile theme. If the app lags and is jerky while scrolling that is worse not better (also as I need to display images hiding the webview's like he suggests wouldn't work). Also UIWebView's need to be created on the main thread or they break.

  • Back to the UIWebView? Annoyingly besides doing a pathetic cheat, (like in the iFans app) where you only display text and then if they click it a UIWebView loads with all the nice images etc..., the only option left seems to be to do what I think the TapaTalk app does and have the entire thread view as a UIWebView. This isn't too bad as it will probably have quite good performance and will allow me to possibly add user controlled themes etc.. but I find the idea of using a UIWebView in a websites native app repulsive.

Does anyone have any experience creating web powered app, like maybe a facebook client, forum app, or new site app which had to display content from the site (I don't really count a twitter client as it only has to deal with text & links in small amounts per post). Or any ideas on the best way to display RichText content in an iOS app?

Any idea's would have to deal with the lot:

  • Multi Coloured Text.
  • Right, Left & Center aligned text.
  • Images (of variable size).
  • Bold text.
  • Text of different sizes & fonts.
  • Underlines text.
  • YouTube Videos.
  • HTML tables.

Just in case the actual question wasn't very clear in all of that I'll sum it up:

"What is the best way to display lots of RichText (HTML formatted) content for a forum client app"

2 Answers
Related