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