Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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



        }

    } 

также дайте свой отзыв для ответа. Полезно ли вам?

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 5

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

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