Iphone 停止网络活动指示器
我用下面的代码加载了一个网页。一切正常,但我想停止 完成网页加载后的网络活动指示器。我们怎么知道 网页已完全加载 任何人都请帮忙Iphone 停止网络活动指示器,iphone,objective-c,cocoa-touch,xcode,Iphone,Objective C,Cocoa Touch,Xcode,我用下面的代码加载了一个网页。一切正常,但我想停止 完成网页加载后的网络活动指示器。我们怎么知道 网页已完全加载 任何人都请帮忙 UIApplication* app = [UIApplication sharedApplication]; app.networkActivityIndicatorVisible = YES; // to stop it, set this to NO NSURL *url = [NSURL URLWithString:@"http://www.google
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];
您只需将
webView.delegate
设置为指向某个对象,并让该对象实现webviewdiffinishload:
最简单的方法是在实例化UIWebView后添加此行
[webView setDelegate:self];
现在您将调用webViewDidFinishLoad:
,整个方法如下所示
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
我将进一步解释这一点,因为您将来绝对需要了解授权
UIWebView只是一个显示web数据的对象。它真的不喜欢处理所有其他的东西,因为它真的只是喜欢web数据。现在,在您的例子中,您想知道UIWebView何时完成了它最喜欢的小任务。要做到这一点,您的UIWebView向它的代理发出一声喊叫,如“Yo holmes,我现在加载完这些数据了。所以,现在就去做您现在要做的事情吧。”然后您的UIWebView继续它的快乐之路
因此,我们所做的是,通过将webView上的delgate属性设置为self,告诉UIWebView它的委托(在本例中)是我们当前的类
从那里,您可以调用UIWebView委托可用的任何方法(其全部在文档中),并让它们执行UIWebView主要用途的次要任务
[webView setDelegate:self];
有意义吗?以下是我用来停止活动指示器的方法:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *urlAddress = [NSString stringWithFormat:@"http://www.wikipedia.com/wiki/%@", place.name];
NSURL *url= [NSURL URLWithString: [urlAddress stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[[self webView] setDelegate:self];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[activityIndicator stopAnimating];
}
- (void) webViewDidStartLoad:(UIWebView *)webView {
[activityIndicator startAnimating];
}
要在UIWebView加载请求时显示网络指示器,请使用以下代码。
#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
return YES;
}
//For Showing NetWork Indicator in Webview
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
注意:
UIViewController
和[webView setDelegate:self]代码>你能解释一下吗。我对objective c编程一无所知。非常感谢您的解释!我喜欢想象所有的物体都像贝莱尔的新鲜王子一样说话。