как использовать индикатор выполнения в приложении iphone - PullRequest
20 голосов
/ 14 сентября 2011

В своем приложении для iPhone я загружаю некоторые данные с FTP-сервера. Чтобы показать действие я использую UIActivityIndicator. Если я поставлю UIProgressView вместо UIActivityIndicator, это будет более подходящим. Как мне использовать UIProgressView при загрузке некоторых данных? Кто-нибудь может дать мне ссылку на учебник или пример кода? Заранее спасибо.

Ответы [ 5 ]

40 голосов
/ 14 сентября 2011

сначала вы создаете IBOutlet в .h файле

IBOutlet UIProgressView * threadProgressView;

Затем в файле .m в viewdidload сначала устанавливаете прогресс в 0.0, а затем вызываете метод makeMyProgressMoving

    threadProgressView.progress = 0.0;
    [self performSelectorOnMainThread:@selector(makeMyProgressBarMoving) withObject:nil waitUntilDone:NO];

, затем добавляете метод ниже

- (void)makeMyProgressBarMoving {

        float actual = [threadProgressView progress];
        if (actual < 1) {
            threadProgressView.progress = actual + ((float)recievedData/(float)xpectedTotalSize);
            [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO];
        }
        else{



        }

    } 

также оставьте свой отзыв для ответа.это полезно для вас?

4 голосов
/ 14 сентября 2011

Вы можете отобразить индикатор выполнения с помощью этой строки кода

-(void) connection:(NSURLConnection *) connection 
didReceiveData:(NSData *) data {
   if (file)
   { 
       [file seekToEndOfFile];
        progressView.progress = ((float)recievedData / (float) xpectedTotalSize);
   } 
     [file writeData:data];
     recievedData += data.length;
     NSLog(@"Receiving Bytes: %d", recievedData);
}
4 голосов
/ 14 сентября 2011

Это довольно просто.Вам просто нужно установить соответствующее значение свойства progress из UIProgressView.

. Для делегата NSURLConnection вы должны получить объем данных, которые вы ожидаете загрузить, и обновить progress во время загрузки.Progress представляется значением с плавающей запятой в диапазоне от 0,0 до 1,0 включительно, где 1,0 указывает на завершение задачи.

2 голосов
/ 24 декабря 2012

Один из вариантов - AFNetworking. AFURLConnectionOperation также позволяет легко транслировать выгрузки и загрузки, обрабатывать проблемы аутентификации, отслеживать ход загрузки и выгрузки и контролировать поведение или запросы кэширования.

0 голосов
/ 23 октября 2017

отмечено: self.progressionBalance.progress = 5.0 / 10.0;

Вы должны установить десятичную дробь.

...