The right approach to loading dynamic content into a UITableView in iOS
        Posted  
        
            by 
                OS.
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by OS.
        
        
        
        Published on 2012-04-03T21:08:31Z
        Indexed on 
            2012/04/03
            23:29 UTC
        
        
        Read the original article
        Hit count: 242
        
ok, I've read tons of bits and pieces on the subject of loading dynamic content (from the web) into a UITableView and the problem with calculating cell height upfront. I've tried different simple implementations but the problem persists...
Assuming I need to read a JSON file from the web, parse it into 'item' objects, each with variable size image and various text labels, here is what I believe would be the right approach to avoid long hang time of the app while everything is loading:
- on app load read JSON file and parse into items array
- provide only small part of the items array to the tableview (about 10 items) - since I need to load the images associated with each item to calculate cell height - I don't want the view to go through the whole items list and load all images - this hangs the app until every image is loaded
- display the tableview with the available cells (assuming I load a few 'spare' ones, user can even scroll to more items)
- in the background using Grand Central Dispatch download images for all/some of the remaining items and then reload the tableview with the new data (repeat step 4 if item list is very long)
Step 2 above is necessary since I have no way to calculate the cell height without loading the images first, and since tableview first calculates height of all cells it may take a very long time to download all images for all items.
Would you say this is the right approach? am I missing something?
© Stack Overflow or respective owner