Domanda

C'è una cosa come un "del carico completo" per le immagini in iPhone?

Voglio essere in grado di distruggere un indicatore UIActivity una volta e l'immagine viene caricata.

Ciò che la miglior medicina generale per fare questo?

È stato utile?

Soluzione

Se si vuole semplicemente licenziare un UIActivityIndicatorView dopo un UIImage è stato caricato e visualizzato correttamente in un UIImageView, si può provare il seguente:

- (void)loadImageAtPath:(NSString*)path
{
    // show the indicator
    [_myIndicatorView startAnimating];

    // give UIKit a chance to setup and draw the view hierarchy:
    [self performSelector:@selector(_loadImageAtPath:)
               withObject:path
               afterDelay:0];
}

- (void)_loadImageAtPath:(NSString*)path
{
    // load the image
    _myImageView.image = [UIImage imageWithContentsOfFile:path];

    // force the image to load and decompress now
    _myImageView.image.CGImage

    // image is ready, so we can remove the indicator view
    [_myIndicatorView removeFromSuperview];
}

Devo ammettere, non ho la prova il codice di cui sopra. Si prega di lasciare un commento se funziona.

Altri suggerimenti

UIImage ha un'API sincrono. Ciò significa che quando si crea (o disegnare) un UIImage, che è stato caricato e decompresso. Questo significa anche che una chiamata di metodo a creare (o disegno) una UIImage può bloccare per tutto il tempo necessario per caricare quell'immagine.

Se si vuole fare altre cose durante il caricamento di un'immagine, è necessario caricare l'immagine su un thread in background, che è possibile utilizzare l'API core grafico C. UIImage non è thread sicuro e può essere utilizzato sul filo principale soltanto.

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