我使用以下代码加载网页.一切正常,但我想在完成加载网页后停止网络活动指示.我们怎么知道网页已完全加载.
有人请帮忙.
UIApplication* app = [UIApplication sharedApplication]; app.networkActivityIndicatorVisible = YES; // to stop it, set this to NO NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request];
Mark Adams.. 6
最简单的方法是在实例化UIWebView之后添加此行.
[webView setDelegate:self];
现在你将调用webViewDidFinishLoad:
,整个方法应该是这样的.
- (void)webViewDidFinishLoad:(UIWebView *)webView { [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; }
我将进一步解释这一点,因为您将来绝对需要了解授权.
UIWebView只是一个显示Web数据的对象.它并不喜欢处理所有这些其他东西,因为它真的很喜欢网络数据.现在,在您的情况下,您想要了解UIWebView何时完成其最喜欢的小任务.要做到这一点,你的UIWebView给它的代表提供了一个大喊,比如"Yo holmes,我现在已经完成了加载这些数据.所以你可以做任何你现在做的事情." 并且您的UIWebView继续以其快乐的方式.
所以我们所做的就是通过将webView上的delgate属性设置为self来告诉UIWebView它的委托,在本例中是我们当前的类.
从那里,您可以调用UIWebView委托可用的任何方法(它在文档中的所有方法),并让它们执行UIWebView主要目的之外的任务.
合理?
最简单的方法是在实例化UIWebView之后添加此行.
[webView setDelegate:self];
现在你将调用webViewDidFinishLoad:
,整个方法应该是这样的.
- (void)webViewDidFinishLoad:(UIWebView *)webView { [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; }
我将进一步解释这一点,因为您将来绝对需要了解授权.
UIWebView只是一个显示Web数据的对象.它并不喜欢处理所有这些其他东西,因为它真的很喜欢网络数据.现在,在您的情况下,您想要了解UIWebView何时完成其最喜欢的小任务.要做到这一点,你的UIWebView给它的代表提供了一个大喊,比如"Yo holmes,我现在已经完成了加载这些数据.所以你可以做任何你现在做的事情." 并且您的UIWebView继续以其快乐的方式.
所以我们所做的就是通过将webView上的delgate属性设置为self来告诉UIWebView它的委托,在本例中是我们当前的类.
从那里,您可以调用UIWebView委托可用的任何方法(它在文档中的所有方法),并让它们执行UIWebView主要目的之外的任务.
合理?