UIImageView.image занимает несколько секунд для отображения при настройке через NSNotification - PullRequest
1 голос
/ 27 декабря 2011

У меня есть UIImageView, который пытается загрузить изображение, и если его не существует, я звоню, чтобы загрузить изображение.Как только изображение загружено, отправляется NSNotification, и UIImageView.image устанавливается на загруженное изображение.Это работает, но требуется несколько секунд после того, как изображение установлено для его показа в UIImageView.Снова уведомление отправляется ПОСЛЕ загрузки изображения, поэтому задержка не является загрузкой изображения.

Вот уведомление:

- (void)recieveImageDownloadUpdate:(NSNotification *)notification {

 if ([[item valueForKey:@"FlipBookPhotoID"] intValue] == imgView1.tag) {
        // this loads the image if the tag on the UIImageView matches the notification update
        imgView1.image = [Helpers getImageDownloadIfMissing:[[item valueForKey:@"PhotoName"] stringByReplacingOccurrencesOfString:@"_lg" withString:@""] withManufacturer:[item valueForKey:@"ManufacturerID"] withFlipBookID:[item valueForKey:@"FlipBookID"] withFlipBookPhotoID:[item valueForKey:@"FlipBookPhotoID"] shouldDownload:NO ];

    }
}

Все это используется в UIScrollView сподкачка включена, как я могу получить эти изображения, чтобы показать сразу после уведомления.

1 Ответ

5 голосов
/ 27 декабря 2011

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

- (void)recieveImageDownloadUpdate:(NSNotification *)notification {
    if ([[item valueForKey:@"FlipBookPhotoID"] intValue] == imgView1.tag) {
        dispatch_async(dispatch_get_main_queue(), ^{
            imgView1.image = [....]
        });
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...