2010-09-17 3 views
2

В настоящее время я получаю кучу изображений из Интернета и масштабируя их, а затем отображаю их на моем представлении.Ускорение загрузки изображений

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

Есть ли в любом случае я мог бы показать представление, а затем каким-то образом исправить загрузку изображений ПОСЛЕ того, как у пользователя есть представление перед ними - похоже на то, как загружается веб-страница?

- (void)configureImages 
{ 
    if ([currentHotel.hotelImages count] > 0) 
    { 
    imageView1.image = [self getScaledImageFromURL: [currentHotel.hotelImages objectAtIndex:0]]; 
    imageView2.image = [self getScaledImageFromURL: [currentHotel.hotelImages objectAtIndex:1]]; 
    imageView3.image = [self getScaledImageFromURL: [currentHotel.hotelImages objectAtIndex:2]];   

    } 
} 

ответ

0

Приложения должны использовать асинхронные сетевые API для всей сети, чтобы избежать блокировки работы пользователя. Лучше избегать добавления потоков (например, когда вы используете NSOperationQueue) для таких задач, как создание сетей, в которых ОС уже предоставляет альтернативы асинхронному использованию.

Apple поставляет асинхронное NSURLConnection, которое хорошо работает, но немного утомительно для использования. Вы можете добавить простую оболочку, такую ​​как gtm-http-fetcher, которая уменьшает выборки асинхронного режима до одной строки с обратным вызовом при завершении загрузки. Это позволит вам запускать все нагрузки в методе viewDidLoad: без остановки пользовательского интерфейса.

+0

Вы - Бог среди мужчин! – TheLearner

Смежные вопросы