2012-07-15 73 views
1

当我使用StartAnimating方法启动UIActivityIndi​​catorView时: [ActivityIcon startAnimating];UIActivityIndi​​cator

它禁用所有的用户交互,所以当用户点击取消按钮应该中止下载过程并隐藏UIActivityIndi​​cator它不起作用!

任何建议,将不胜感激。

编辑: 我正在使用单独的线程在后台下载文件。所有进度报告和用户界面互动我做到了:

[self performSelectorOnMainThread:@selector(RefreshScreen :) withObject:nil waitUntilDone:YES];

和RefreshScreen方法是与UI元素进行交互的人。

+2

你需要让你的下载同步。你能提供你的代码吗? – 2012-07-15 15:41:47

+0

下载单个文件需要很长时间。而用户可能会感到沮丧,而他不知道下载已经完成了多少。 ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:[oElement objectForKey:@“URL”]]];;};}};}};}}; [request setDownloadProgressDelegate:self]; [request setShouldContinueWhenAppEntersBackground:YES]; [request setDownloadDestinationPath:strDownloadPath]; request.delegate = self; [request startSynchronous]; – 2012-07-15 15:47:52

+1

尝试改变这一行:''[request startSynchronous];''为:''[request startAsynchronous];'' – 2012-07-15 15:50:05

回答

2

试图改变这一行:[request startSynchronous];到:[request startAsynchronous];

编辑

- (IBAction)grabURLInBackground:(id)sender 
{ 
    NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    [request startAsynchronous]; 
} 

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
    // Use when fetching text data 
    NSString *responseString = [request responseString]; 

    // Use when fetching binary data 
    NSData *responseData = [request responseData]; 
} 

- (void)requestFailed:(ASIHTTPRequest *)request 
{ 
    NSError *error = [request error]; 
} 
+0

从其他用户复制答案是一件令人遗憾的事情:http://stackoverflow.com/questions/5176461/optimize-multiple-asynchronous-image-downloads-in-ios – 2012-07-15 15:53:32

+0

我知道对,它是一个遗憾复制文档代码http://allseeing-i.com/ASIHTTPRequest/How-to-use#creating_an_asynchronous_request你同意吗? – 2012-07-15 15:55:28

+1

这是我的耻辱 - 我很抱歉。我从未使用过ASIHTTPRequest,并在一分钟前看到了其他答案。 – 2012-07-15 15:57:30

相关问题