2009-12-31 5 views
7

Ho implementato il caricamento dell'immagine pigro per UITableView utilizzando NSUrlConnection. Funziona tutto molto bene. Quando apro il mio tavolo, ottengo automaticamente le immagini quando aspetto un secondo (su 3G). Tuttavia, quando eseguo lo scroll, la tabella carica la nuova cella, avvia le connessioni NSURLC, ma quando l'immagine ha terminato il caricamento (in codice), non vengono messe nella visualizzazione finché la tabella non smette di scorrere.UITableView Caricamento immagine pigro, le immagini vengono visualizzate dopo lo scorrimento STOPS della tabella

L'applicazione Youtube è in grado di caricare le immagini nella tabella mentre si scorre, mi piacerebbe fare anche questo, qualche suggerimento/puntatore?

+0

Mi piacerebbe sentire la risposta anche per questo. BTW carichi ogni immagine su una filettatura separata? Ottengo crash se faccio scorrere velocemente, qualche idea? – natanavra

+0

Non uso thread (almeno, non esplicitamente), uso NSURLConnection initWithRequest: delegate che funziona in modo asincrono .. – StijnSpijker

risposta

9

Dai un'occhiata all'esempio di Apple LazyTableImages.

Se si richiedono tutte le immagini per la tabella in modo asincrono, verranno caricate all'arrivo.

Noterai che alcune applicazioni attendono scrollViewDidEndDragging e loadImagesForOnscreenRows per essere veramente pigre e richiedono solo immagini per le righe che l'utente sta attualmente esaminando.

+2

In realtà quell'esempio funziona ancora peggio del mio, perché avvia solo il thread per caricare l'immagine quando il tavolo si ferma scorrimento (nemmeno quando viene visualizzato). Vedrò come funzionano i threading. La mia app attuale carica le righe non appena arrivano e le interrompe se si scorre l'immagine. L'unico problema è che non vengono inseriti nella tabella finché la tabella non smette di scorrere e non so esattamente perché. Penso che anche se il caricamento dell'immagine avviene in modo asincrono, non si tratta in realtà di un thread separato, quindi attende che la tabella smetta di scorrere. – StijnSpijker

+0

È vero, ma ho trovato il campione davvero ben fatto. Ho funzionato davvero bene con piccole modifiche. – Echilon