it-swarm.com.ru

как использовать индикатор выполнения в приложении iphone

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

20
Ravi

сначала вы создаете 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{



        }

    } 

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

41
Dhaval Rathod

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

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

4
Nekto

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

-(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
Ketan Shinde

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

2
SachinVsSachin

отметил: self.progressionBalance.progress = 5.0/10.0; 

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

0
anson