Domanda

Scaricando un'immagine dalla rete e che mostra in un'UIImageView è abbastanza facile. Tuttavia, questo richiede l'immagine da scaricato completamente prima di essere mostrato all'utente, battendo completamente immagini JPEG progressive (e PNG).

Come faccio a rendere le immagini parzialmente scaricati mentre il trasferimento è stato fatto? Immagino l'SDK per avere qualche funzione di callback che aggiornare l'immagine, ma non riesco a trovare una tale funzione. E 'possibile a tutti con l'attuale iOS SDK?

È stato utile?

Soluzione

Hai provato a rendere l'UIImage in parte come didReceiveData viene chiamato ...? Qualcosa di simile ...

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    //TODO: add some error handling in case the image could not be created
    UIImage *img=[UIImage imageWithData:data];
    if (img) {
        self.imageView.image=img;
    }
}

Altri suggerimenti

So che questo post ha circa 1 anno, ma solo nel caso in cui qualcuno è alla ricerca di esso, v'è un progetto chiamato NYXImagesKit che fa quello che state cercando.

E 'una classe denominata NYXProgressiveImageView che è una sottoclasse di UIImageView.

Tutto quello che dovete fare è:

NYXProgressiveImageView * imgv = [[NYXProgressiveImageView alloc] init];
imgv.frame = CGRectMake(0, 0, 320, 480);
[imgv loadImageAtURL:[NSURL URLWithString:@"http://yourimage"]];
[self.view addSubview:imgv];
[imgv release];

Inoltre, una buona opzione è quella di salvare le immagini in modo che interlaced carichi informatici con bassa qualità e migliorano con il download. Se l'immagine non è interlacciata viene caricato da cima a fondo.

Ora c'è una piccola libreria open-source in cima libjpeg-turbo che permette la decodifica e la visualizzazione JPEG progressivi facilmente:

let imageView = CCBufferedImageView(frame: ...)
if let url = NSURL(string: "http://example.com/yolo.jpg") {
    imageView.load(url)
}

https://github.com/contentful-labs/Concorde

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