`
天梯梦
  • 浏览: 13630461 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

UIWebView加载Loading...两种方法

 
阅读更多

第一种方法:使用UIView and UIActivityIndicatorView

//创建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];
 
//开始加载数据
- (void)webViewDidStartLoad:(UIWebView *)webView {   
      [activityIndicator startAnimating];        
}
 
//数据加载完
- (void)webViewDidFinishLoad:(UIWebView *)webView {
     [activityIndicator stopAnimating];   
     UIView *view = (UIView *)[self.view viewWithTag:103];
     [view removeFromSuperview];
}
 

第二种方法:使用UIAlertView and UIActivityIndicatorView

//加载网页动画
- (void)webViewDidStartLoad:(UIWebView *)webView{
    if (myAlert==nil){       
       myAlert = [[UIAlertView alloc] initWithTitle:nil
                                                              message: @"正在讀取網路資料"
                                                                delegate: self
                                                 cancelButtonTitle: nil
                                                 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];
}
 

来源: http://www.cocoachina.com/bbs/read.php?tid=9419

 

用法一:只显示不停旋转的进度滚轮指示器。

//显示进度滚轮指示器
-(void)showWaiting {
    progressInd=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
    progressInd.center=CGPointMake(self.view.center.x,240);
    [self.navigationController.view addSubview:progressInd];
    [progressInd startAnimating];
}

//消除滚动轮指示器
-(void)hideWaiting
{
    [progressInd stopAnimating];
}
 

用法二:带有半透明背景的进度轮指示器。

//显示进度滚轮指示器
-(void)showWaiting:(UIView *)parent
{
    int width = 32, height = 32;
    CGRect frame = CGRectMake(100, 200, 110, 70) ;//[parent frame]; //[[UIScreen mainScreen] applicationFrame];
    int x = frame.size.width;
    int y = frame.size.height;
  
    frame = CGRectMake((x - width) / 2, (y - height) / 2, width, height);
    UIActivityIndicatorView* progressInd = [[UIActivityIndicatorView alloc]initWithFrame:frame];
    [progressInd startAnimating];
    progressInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;

    frame = CGRectMake((x - 70)/2, (y - height) / 2 + height, 80, 20);
    UILabel *waitingLable = [[UILabel alloc] initWithFrame:frame];
    waitingLable.text = @"Loading...";
    waitingLable.textColor = [UIColor whiteColor];
    waitingLable.font = [UIFont systemFontOfSize:15];
    waitingLable.backgroundColor = [UIColor clearColor];

    frame =  CGRectMake(100, 200, 110, 70) ;//[parent frame];
    UIView *theView = [[UIView alloc] initWithFrame:frame];
    theView.backgroundColor = [UIColor blackColor];
    theView.alpha = 0.7;

    [theView addSubview:progressInd];
    [theView addSubview:waitingLable];

    [progressInd release];
    [waitingLable release];

    [theView setTag:9999];
    [parent addSubview:theView];
    [theView release];

}


//消除滚动轮指示器
-(void)hideWaiting

{
    [[self.view viewWithTag:9999] removeFromSuperview];

}
 

来源: http://blog.csdn.net/lovenjoe/article/details/7498238

 

 

分享到:
评论
1 楼 chen_yuan 2012-11-03  
非常实用,收了!博主可以进IOS中高级开发群:118623167,和大家交流交流

相关推荐

Global site tag (gtag.js) - Google Analytics