开发者

uiimage oncomplete iphone

Is there such a thing as an "on load complete" for images in iphone?

I want to be able to destroy a UIActivity indicator once and image is loaded.

What the general best practice for doing t开发者_运维技巧his?


If you simply want to dismiss a UIActivityIndicatorView after a UIImage has been loaded and displayed properly in a UIImageView, you can try the following:

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

I have to admit, I did not test the above code. Please leave a comment if it works.


UIImage has a synchronous API. This means that when you create (or draw) a UIImage, it has been loaded and decompressed. This also means that a method call to creating (or drawing) a UIImage can block for as long as it takes to load that image.

If you want to do other things while loading an image, you have to load the image on a background thread, which is possible using the Core Graphics C API. UIImage is not thread safe and can be used on the main thread only.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜