2014-12-31 2 views
1

Удивление, если есть идея проблемы производительности в приложении я работаю:вопрос производительности относительно загрузки больших GIFs в UIViews быстро

В основном приложение является трут для гифы, так что я скрести гифы из г/гифы на reddit и загрузить их в модифицированный MDCSwipeToChooseView (https://github.com/modocache/MDCSwipeToChoose).

Основой проблемы является размер gif, размер которого составляет около 4-6 МБ, поэтому, когда я загружаю URL-адрес gif в imageView с https://github.com/Flipboard/FLAnimatedImage, он занимает 5-10 секунд.

FLAnimatedImage *gifImage = [[FLAnimatedImage alloc] initWithAnimatedGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:self.gif.gifLink]]]; 

Результат 1. GIFs нагрузка очень медленно, особенно при первом запуске (как в настоящее время показано GIFs, я тяну и загружать последующие gifViews будет показан позже в фоновом режиме) 2. Приложение использует тонны данных сотовых Я думаю, что проблема сотовых данных не связана с тем, что gif просто большие, но я ищу, чтобы gifs загружались быстрее. Может быть, загрузка и переработка фактических gif (в фоновом режиме) и загрузка их с локального пути?

Спасибо!

ответ

0

Вы должны загружать анимированный GIF асинхронно, а затем устанавливать его на вид, например.

[[[NSURLSession sharedSession] dataTaskWithURL:nil/*your URL*/ completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
    FLAnimatedImage *gifImage = [[FLAnimatedImage alloc] initWithAnimatedGIFData:data]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     animatedImageView.image = gifImage; 
    }); 
}] resume]; 
Смежные вопросы