Frage

Gibt es so etwas wie ein „auf Last complete“ für Bilder in iphone?

Ich mag einen UIActivity Indikatoren zerstören können, einmal und Bild geladen wird.

Was die allgemeine bewährte Methode, dies zu tun?

War es hilfreich?

Lösung

Wenn Sie einfach eine UIActivityIndicatorView entlassen wollen, nachdem ein UIImage geladen wurde und angezeigt ordnungsgemäß in einem UIImageView, können Sie versuchen, die folgenden:

- (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];
}

Ich muss zugeben, ich habe nicht den obigen Code testen. Bitte hinterlassen Sie einen Kommentar, wenn es funktioniert.

Andere Tipps

UIImage hat eine synchrone API. Dies bedeutet, dass, wenn Sie (oder ziehen) einen UIImage erstellen, sie geladen und dekomprimiert wurde. Dies bedeutet auch, dass ein Methodenaufruf (oder Ziehen) einen UIImage zur Schaffung kann so lange blockieren, wie es, das Bild zu laden dauert.

Wenn Sie andere Dinge tun wollen, während ein Bild laden, haben Sie auf einem Hintergrund-Thread das Bild zu laden, die möglich ist, den Core Graphics C-API. UIImage ist nicht Thread-sicher und kann nur auf dem Haupt-Thread verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top