uiimage oncomplete iphone - PullRequest
       19

uiimage oncomplete iphone

1 голос
/ 16 марта 2010

Существует ли такая вещь, как "при загрузке завершена" для изображений в iphone?

Я хочу иметь возможность уничтожить индикатор UIActivity один раз и изображение будет загружено.

Какая общая лучшая практика для этого?

Ответы [ 2 ]

0 голосов
/ 16 марта 2010

Если вы просто хотите отклонить UIActivityIndicatorView после того, как UIImage была загружена и правильно отображается в UIImageView, вы можете попробовать следующее:

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

Должен признать, я не тестировал приведенный выше код. Пожалуйста, оставьте комментарий, если он работает.

0 голосов
/ 16 марта 2010

UIImage имеет синхронный API. Это означает, что когда вы создаете (или рисуете) UIImage, он был загружен и распакован. Это также означает, что вызов метода для создания (или рисования) UIImage может блокировать столько времени, сколько требуется для загрузки этого изображения.

Если вы хотите делать другие вещи во время загрузки изображения, вы должны загрузить изображение в фоновом потоке, что возможно с помощью Core Graphics C API. UIImage не является поточно-ориентированным и может использоваться только для основной резьбы.

...