【转】在webview加加载数据时平添一个Loading.动画的两种方法
【转】在webview加加载数据时添加一个Loading...动画的两种方法【转】在webview加加载数据时添加一个Loading..
【转】在webview加加载数据时添加一个Loading...动画的两种方法
【转】在webview加加载数据时添加一个Loading...动画的两种方法
?
大家使用iPhone/iPod浏览网页时,一定见过浏览器加载网页时,总会出现一个Loading动画,其实这是实现起来是非常简单的。下面就是两种不同的实现方法:
第一种方法:
//创建UIWebView??
WebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 320, 400)];
[WebView setUserInteractionEnabled:NO];
[WebView setBackgroundColor:[UIColor clearColor]];??
[WebView setDelegate:self];??
[WebView setOpaque:NO];//使网页透明??
NSString *path = @"http://www.baidu.com";??
NSURL *url = [NSURL URLWithString:path];??
[WebView loadRequest:[NSURLRequest requestWithURL:url]];
//创建UIActivityIndicatorView背底半透明View??
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];??
[view setTag:103];
[view setBackgroundColor:[UIColor blackColor]];
[view setAlpha:0.8];
[self.view addSubview:view];??
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activityIndicator setCenter:view.center];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];??
[view addSubview:activityIndicator];??
[self.view addSubview:WebView];??
[view release];
[WebView release];??
//以下两个方法是UIWebView的delegate methods
//开始加载数据
- (void)webViewDidStartLoad:(UIWebView *)webView {
??????[activityIndicator startAnimating];??
}
//数据加载完??
- (void)webViewDidFinishLoad:(UIWebView *)webView {??
???? [activityIndicator stopAnimating];??
???? UIView *view = (UIView *)[self.view viewWithTag:103];??
???? [view removeFromSuperview];
}
第二种方法:在UIAlertView上添加一个UIActivityIndicatorView //加载网页动画
- (void)webViewDidStartLoad:(UIWebView *)webView{
????if (myAlert==nil){
?????? myAlert = [[UIAlertView alloc] initWithTitle:nil
??????????????????????????????????????????????????????????????message: @"正在加载数据,请稍候..."
????????????????????????????????????????????????????????????????delegate: self??
???????????????????????????????????????????????? cancelButtonTitle: nil f
???????????????????????????????????????????????? otherButtonTitles: nil];
???? UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
???? activityView.frame = CGRectMake(120.f, 48.0f, 37.0f, 37.0f);??
???? [myAlert addSubview:activityView];
???? [activityView startAnimating];
???? [myAlert show];
}
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{??
??????[myAlert dismissWithClickedButtonIndex:0 animated:YES];
}