2016-12-09 6 views
0

У меня есть приложение, которое загружает и показывает изображения. Я обнаружил, что, когда я не на Wi-Fi, требуется некоторое время для загрузки изображения. Я хочу улучшить свой UX, поэтому при загрузке изображения мне бы хотелось иметь индикатор активности загрузки.Как показать загружающую активность для хранилища firebase скачать

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

[[[FIRStorage storage] referenceForURL:profileURL] dataWithMaxSize:INT64_MAX 
                     completion:^(NSData *data, NSError *error) { 
                      if (error) { 
                       NSLog(@"Error downloading: %@", error); 
                       return; 
                      } 
                      NSString *dataType=[self contentTypeForImageData:data]; 
                      if (dataType) { 
                      [_imageCache setObject:[UIImage imageWithData:data] forKey:uid]; 
                      } 
                      myIcon.image = 
                      [UIImage imageWithData:data]; 
                     }]; 
      }); 

Вот как я загружаю изображение и кеш.

ответ

0

Thing 1: Не нужно использовать дополнительную очередь, мы уже выполняем загрузку на фоновом потоке, чтобы он не блокировал ваш пользовательский интерфейс.

Вещь 2: Вы хотите сделать что-то вроде:

// Upload file and metadata to the object 'images/mountains.jpg' 
FIRStorageUploadTask *uploadTask = [storageRef putFile:localFile metadata:metadata]; 

// Start the upload progress UI 

[uploadTask observeStatus:FIRStorageTaskStatusProgress handler:^(FIRStorageTaskSnapshot *snapshot) { 
    // Update the progress UI with the progress 
}]; 

[uploadTask observeStatus:FIRStorageTaskStatusSuccess handler:^(FIRStorageTaskSnapshot *snapshot) { 
    // Remove the progress UI 
}]; 

Рассмотрим MBProgressHub для блесны.