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