UIActivityIndicator проблема при загрузке с URL - PullRequest
0 голосов
/ 15 мая 2009

Я пытаюсь загрузить изображение с URL-адреса и использовать индикатор активности, отображающий факт загрузки файла. Однако, он не работает, так как мой индикатор не анимируется, когда я вызываю эту функцию загрузки, может кто-нибудь сказать мне, почему?

-(void)download{
    [indicator startAnimating];
    NSString *downloadPath=@"http://www.xyz.com/path/pic.jpg; 
    NSData *downloadData=[NSData dataWithContentsOfURL:[ NSURL  URLWithString:downloadPath]];
    if(downloadData){
           //do something
          [indicator stopAnimating];
     }
      else{
        //do something
        [indicator stopAnimating];
          }
     }

Ответы [ 2 ]

0 голосов
/ 15 мая 2009

Анимация выполняется в цикле событий, который находится в том же потоке, что и ваш код. То есть анимация не запустится, пока выполняется ваш код.

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

0 голосов
/ 15 мая 2009

Необходимо поставить [индикатор startAnimating] и [индикатор stopAnimating]; в отдельных методах. Я считаю, что анимация не срабатывает, пока метод не достигнет своего конца. Так что если вы разделите это на несколько методов, это должно сработать

  • Один метод, который запускает вашу анимацию
  • Один из способов загрузки файла.
  • Один метод, который останавливает анимацию.

Другим вариантом является создание потоков для достижения этой цели. Больше информации здесь

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