Добавить UIProgressView к NSURLConnection? - PullRequest
1 голос
/ 05 декабря 2011

Можно ли добавить UIProgressView в NSURLConnection?Это так же просто, как получить длину данных, а затем установить ее в int, а затем отправить это int в мой другой класс в мой UIProgressView?

Может кто-нибудь показать мне, как это сделать?Есть ли примеры или ссылки, которые укажут мне правильное направление?

Спасибо !!!

Ответы [ 2 ]

3 голосов
/ 05 декабря 2011

В вашей функции didReceiveResponse вы можете получить общий размер файла следующим образом -

_totalFileSize = response.expectedContentLength;.

В вашей функции didReceiveData вы можете затем добавить до общего числа полученных байт счетчик -

_receivedDataBytes += [data length];

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

MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize

(либо вdidReceiveData функция или где-то еще в вашем коде)

Не забудьте добавить переменные, которые содержат количество байтов в вашем классе!

Вот как вы можете реализовать делегатов по порядкуобновить progressview

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    _totalFileSize = response.expectedContentLength;
    responseData = [[NSMutableData alloc] init];
}


-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
   _receivedDataBytes += [data length];
   MyProgressBar.progress = _receivedDataBytes / (float)_totalFileSize;
   [responseData appendData:data];
 }

Надеюсь, это поможет ..

0 голосов
/ 24 февраля 2014

Принятый ответ выглядит слишком похоже на этот.https://stackoverflow.com/a/4255630 Это то, что действительно привлекло мое внимание.

(либо в функции didReceiveData, либо где-то еще в вашем коде)

Не забудьте добавить переменные, содержащие количество байтов, в ваш класс!

...