UIImage iphone onComplete
-
20-09-2019 - |
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?
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.