目前,我正在通过调用方法fetchProducts
从Web服务器下载数据。这是在另一个单独的线程中完成的。当我在上述方法中成功下载了50个项目时,post
通过[NSNotification defaultCenter]
正在收听的方法调用postNotificationName: object:
向Observer
发送通知。请注意,此Observer
是另一个ViewController
,其中包含选择器updateProductsBeingDownloadedCount:
。现在,当Observer
收到通知时,我设置了progressView
的属性和一个告诉进度的标签。下面是我在UI中进行此更改的代码。
dispatch_async(dispatch_get_main_queue(), ^{
if ([notif.name isEqualToString:@"DownloadingProducts"]) {
[self.progressBar setProgress:self.progress animated:YES];
NSLog(@"SetupStore: progress bar value is %.0f", self.progressBar.progress);
self.progressLabel.text = [NSString stringWithFormat:@"Downloading %.0f%% done...", self.progress * 100];
NSLog(@"SetupStore: progress label value is %@", self.progressLabel.text);
[self.view reloadInputViews];
}
});
我们的想法是在下载更多项目之前同时移动progressView
,直到完成为止。在我的情况下,progressView
的动画将在项目下载后立即开始,因此延迟。请在此赐教我。