Domanda

Sto lavorando su un un'applicazione che è molto semplice un controller di navigazione in vista tavolo quando l'utente clicca una riga, è diretto alla visualizzazione dettagli.

Tuttavia, vista dei dettagli tira i dati di Core Data. Sto tirando una relativamente grande quantità di dati che richiede circa tre secondi per caricare.

Volevo aggiungere che UIActivityIndicatorView per mostrare i progressi.

Ho provato ad avviare l'animazione una volta che l'utente seleziona la riga, quindi ho impostato da animare nel didSelectRowAtIndexPath

Per qualche ragione, l'indicatore di attività non inizia prima che la spinta dei dettagli visualizzare.

Qualsiasi idea del perché? o il modo migliore per attuare una simile idea?

~ Adham

È stato utile?

Soluzione

A causa di iniziare l'animazione e quindi avviare una grande operazione nello stesso thread. Si consideri che il 3 esegue seconda operazione in un nuovo filo. Guardate NSOperationQueue e quindi creare un NSOperation per eseguire tale procedura. Si lavorerà in questo modo.

Altri suggerimenti

L'interfaccia utente non aggiorna fino alla fine del ciclo di esecuzione. Sei, in sequenza, la visualizzazione del monitor di attività, quindi spingere la nuova visualizzazione della tabella, e poi gli aggiornamenti dell'interfaccia utente. È necessario modificare questo ordine.

È possibile spostare qualcosa da un thread diverso, o si potrebbe forse ritardare il caricamento della nuova vista tavolo chiamando performSelector:afterDelay: con un ritardo pari a 0. Questo ritarderà il caricamento della nuova visualizzazione della tabella fino a dopo appare l'indicatore di attività nell'interfaccia utente. Ora, è ancora tutto sullo stesso thread, in modo da essere bloccato e fare qualsiasi cosa, ma se l'animazione è infilato nel monitor di attività, sarebbe per una soluzione rapida e semplice.

metodo di chiamata in discussione:

[NSThread detachNewThreadSelector: @selector(loadMethod) toTarget:self withObject:nil];

Vedere seguito per maggiori dettagli:
http://iphone.zcentric.com/?s=UIActivityIndicatorView

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top