显示进度条,直到它在UIWebView IOS7中加载数据

时间:2014-05-31 05:24:33

标签: ios pdf uiwebview progress-bar

您好我的应用程序中有UIWebView使用URL加载pdf文件,其非常大的文件需要花费太多时间来加载。现在我想要显示喜欢其加载进度的用户,直到我的文件加载后加载我的pdf已隐藏进度条,我该如何实现?

我的网页视图代码。

- (void)viewDidLoad
{
   [super viewDidLoad];

   NSString *pdf =@"http://jesusredeems.com/mag/pdf/JRE-2014-03.pdf";

   NSURL *url = [NSURL URLWithString:pdf];

   NSURLRequest *myRequest = [NSURLRequest requestWithURL:url];
   [webview loadRequest:myRequest];

}

我正在使用上面的代码加载我的pdf,如何使用进度条进行文件加载?

2 个答案:

答案 0 :(得分:3)

您应该在webview委托方法中启动/停止进度条。

viewDidLoad

中添加以下行
webview.delegate = self;

在控制器中添加以下功能......

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    //Start the progressbar.. 
    return YES;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    //Stop or remove progressbar
}

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    //Stop or remove progressbar and show error
}

答案 1 :(得分:3)

是,为什么不,使用UIWebView委托方法

- (void)viewDidLoad
{
   [super viewDidLoad];

   webview.delegate=self; //Assign Delegate

   [webview loadRequest:myRequest];

   [self showProgress];//Show Progress

}

使用以下代理

- (void)webViewDidFinishLoad:(UIWebView *)webView{
    if(!webView.isLoading){ //This ensures whether the webview has finished loading..
       [self hideProgress];
    }
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
   [self hideProgress];
}

干杯。