Я пытаюсь показать панель прогресса, когда я загружаю JSON с URL-адреса. JSON загружается правильно, но я не уверен, как показать индикатор прогресса. Я попытался использовать UIProgressView
, но он не отображается на экране. Мы ценим любые предложения.Как показать ProgressBar с AFNetworking AFHTTPRequestOperationManager
CGFloat width = [UIScreen mainScreen].bounds.size.width;
CGFloat height = [UIScreen mainScreen].bounds.size.height;
CGRect rect = CGRectMake(width/2, height/2, width/5, height/5);
UIProgressView *myProgressView = [[UIProgressView alloc]initWithFrame:rect];
myProgressView.progressViewStyle = UIProgressViewStyleBar;
[self.view addSubview:myProgressView];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"https:urlWithJson" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
[operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead)
{
myProgressView.progress = (float)totalBytesRead/totalBytesExpectedToRead;
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"operation Completed");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"ERROR");
}];
[operation start];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"timeout Error: %@", error);
}];
Имеет ли значение totalBytesExpectedToRead значение? HTTP-заголовок должен содержать размер документа, чтобы получить общие ожидаемые байты. – Thomas
Я попытался вставить инструкцию NSLog внутри setDownloadProgressBlock, но ничего не печатал. Есть ли лучший способ добиться того, чего я хочу? – baskInEminence