Как мы можем быстрее загрузить изображение в iPhone? - PullRequest
1 голос
/ 15 ноября 2011
NSURL * imageURL = [NSURL URLWithString:imageurldata];

NSData * imageData = [NSData dataWithContentsOfURL:imageURL];

image1 = [UIImage imageWithData:imageData];

[image1 retain];

Я написал приведенный выше код для загрузки изображения в iPhone, и я показываю новый вид, в котором я показываю это изображение, но для отображения изображения требуется время, пока экран не станет пустым. Мы берем изображение из URL и сохраняем его в объекте. Можно ли показать изображение и просмотреть одновременно?

Ответы [ 4 ]

2 голосов
/ 15 ноября 2011

как справиться с мозаикой изображений на лету .

Вам понадобятся только классы TileImageView и они будут использоваться (не UIImageView, поскольку он обрабатывает загрузку данных асинхронно) следующим образом ...

TileImageView *tileImageView  = [[TileImageView alloc]initWithFrame:<myFrameAsPerMyNeeds>];
[tileImageView setTag:<this is the identifier I use for recognizing the image>];
[myImageScrollView addSubView:tileImageView];
[tileImageView startImageDownloading:imageurldata];
[tileImageView release];

Спасибо

2 голосов
/ 15 ноября 2011

Попробуйте этот асинхронный подход:

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{
        NSLog(@"Screen %@ - pauseBannerFileImage download starts", self.name);          
        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:newUrlForImage]]];
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"!-Screen %@-!pauseBannerFileImage downloaded", self.name);
            self.imageView.image = image;
        });
    });
1 голос
/ 15 ноября 2011

Насколько мне известно, загрузка данных с сервера займет некоторое время. Существует один способ покрытия задержки - показать UIActivityIndicatorView при загрузке данных изображения

0 голосов
/ 15 ноября 2011

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

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