I’m not sure if I totally grok the fullness of your question, but here are some things that I did when confronted with a similar problem.
-
I used
-tableView:cellForRowAtIndexPath:
as my cue to load more data from the web. I picked a number (in my case 10), whenindexPath.row + 10 >= self.data.count
load more data.- I needed to call
-tableView:cellForRowAtIndexPath:
anyway. - I didn’t force a callback into the tighter loop of
-scrollViewDidScroll:
.
- I needed to call
-
I subclassed
UIImageView
with a class that would async load images which I calledURLImageView
.- In
-tableView:cellForRowAtIndexPath:
, I assigned a URL to theURLImageView
instance. - That assignment caused a background operation that would either load from disk or load from the web.
- The operation was cancelable, so I didn’t keep working on an image that no longer needed loading.
- In
I had a table view with hundreds (but not thousands) of images. I only had 2 or 3 table cells on the screen at once.
- I used
-refreshData
: it worked like a champ. - I even got
URLImageView
to fade in the image. It was a very nice effect.
I hope that helps.