Miw*_*iwi 2 pdf xcode objective-c uiwebview uiactivityindicatorview
我有一个UIActivityIndicator应该循环,直到加载PDF文件.
我无法理解为什么,但指标在加载PDF之前消失.我无法理解PDF文件是否太大(1,4 MB),如果我的应用程序冻结,或者我在代码中写错了
-(void)startTheProcess {
act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
//coordinate act
[act setCenter:CGPointMake(320 / 2, 440 / 2)];
self.act.hidden = FALSE;
[self.view addSubview:act];
[act startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = TRUE;
[NSThread detachNewThreadSelector:@selector(creaVista) toTarget:self withObject:nil];
}
- (void) creaVista{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSURL *url = [NSURL URLWithString:@"http://www.something.com/file.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[pdfView loadRequest:request];
[pdfView setScalesPageToFit:YES];
[self performSelectorOnMainThread:@selector(processDone) withObject:nil waitUntilDone:NO];
[pool release];
}
-(void)processDone {
[act stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = FALSE;
}
Run Code Online (Sandbox Code Playgroud)
如果我调试它,我可以很容易地看到调试器快速进入[act stopAnimating]然后停止,但文件尚未加载:几秒钟后出现PDF.
你有任何提示吗?我是一个菜鸟,我想我做了一些愚蠢的错误......谢谢
听起来约书亚在评论中有正确的想法.负载是异步的,将在负载实际完成之前返回.
如果您pdfView是UIWebView,则可以使用该UIWebViewDelegate方法webViewDidFinishLoad:知道PDF何时完成加载.如果你把[act stopAnimating]它放在那里它应该工作.
您还希望将其置于webView:didFailLoadWithError:有错误的位置.
要设置代理,请pdfView执行以下操作:[pdfView setDelegate:self];
并确保您的控制器采用UIWebViewDelegate如下方式:
@interface ClassName : ItsSuperclass < UIWebViewDelegate >
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |