我正在使用以下代码:
子视图是oDPVC,其上的进度条是oProgress。设置进度属性不会更新控件。
从我在网上阅读的内容来看,很多人都想做到这一点,但没有完整可靠的示例。此外,有很多矛盾的建议。有些人认为你不需要单独的线程。有些人说你需要一个后台线程来更新进度。有些人说不,要在后台做其他事情,并在主线程上更新进度。
我尝试了所有的建议,但都不适用于我。
还有一件事,也许这是一个线索。我使用这段代码在applicationDidFinishLaunching期间加载子视图:
在XIB文件中(我已经在Interface Builder和文本编辑器中检查过),进度条的宽度为280像素。但是当视图打开时,它已被调整到大约一半的宽度。此外,视图的背景图像是default.png。它没有出现在默认图像的正上方,而是向上推了大约10个像素,留下了屏幕底部的白色条。也许这是一个单独的问题,也可能不是。
NSURLConnection *oConnection=[[NSURLConnection alloc] initWithRequest:oRequest delegate:self];
为了下载一个文件,我想要更新加载的子视图上的进度条。为此,我使用以下代码:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[oReceivedData appendData:data];
float n = oReceivedData.length;
float d = self.iTotalSize;
NSNumber *oNum = [NSNumber numberWithFloat:n/d];
self.oDPVC.oProgress.progress = [oNum floatValue];
}
子视图是oDPVC,其上的进度条是oProgress。设置进度属性不会更新控件。
从我在网上阅读的内容来看,很多人都想做到这一点,但没有完整可靠的示例。此外,有很多矛盾的建议。有些人认为你不需要单独的线程。有些人说你需要一个后台线程来更新进度。有些人说不,要在后台做其他事情,并在主线程上更新进度。
我尝试了所有的建议,但都不适用于我。
还有一件事,也许这是一个线索。我使用这段代码在applicationDidFinishLaunching期间加载子视图:
self.oDPVC = [[DownloadProgressViewController alloc] initWithNibName:@"DownloadProgressViewController" bundle:nil];
[window addSubview:self.oDPVC.view];
在XIB文件中(我已经在Interface Builder和文本编辑器中检查过),进度条的宽度为280像素。但是当视图打开时,它已被调整到大约一半的宽度。此外,视图的背景图像是default.png。它没有出现在默认图像的正上方,而是向上推了大约10个像素,留下了屏幕底部的白色条。也许这是一个单独的问题,也可能不是。