【问题标题】:activity indicator not displayed until full page is loaded在加载完整页面之前不显示活动指示器
【发布时间】:2010-01-20 13:47:55
【问题描述】:

我希望在加载完整网页之前显示我的活动指示器。请帮助我提供一些示例程序或博客。谢谢

 webView = [[UIWebView alloc] initWithFrame:webFrame];  
 webView.backgroundColor = [UIColor greenColor]; 
 [second.view addSubview:webView];

 webView.backgroundColor = [UIColor grayColor];
 webView.scalesPageToFit=YES;
 [webView release];
 NSString *urlAddress = storyLink;
 NSURL *url = [NSURL URLWithString:urlAddress];
 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
 [webView loadRequest:requestObj];
 [(UIActivityIndicatorView *)[self navigationItem].rightBarButtonItem.customView startAnimating];

上面的代码我已经在里面使用了

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {}

方法。

我用下面的方法创建了活动指示器

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [super viewWillAppear:YES];

    UIActivityIndicatorView * activityIndicator = [[UIActivityIndicatorView alloc]  initWithFrame:CGRectMake(0, 0, 20, 20)];
    UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
    [self navigationItem].rightBarButtonItem = barButton;   
}

对我来说,活动指示器会在 3 秒内创建和销毁。我希望它一直显示到网页完全加载。请帮助我。谢谢。

【问题讨论】:

    标签: iphone activity-indicator


    【解决方案1】:

    首先,不要调用 [super viewWillAppear:] 两次。只需调用一次。其次,您正在泄漏 activityIndi​​cator 和 barButton。

    您还没有指明在哪里放置了 stopAnimating 调用。要按照您的建议进行操作,您需要将自己设置为 webView 的委托,并在 webViewDidFinishLoad: 中停止动画。

    【讨论】:

      【解决方案2】:

      请向我们展示您正在执行的活动的代码(加载网页)。仅当您的代码将控制权返回给运行循环时,UI 才会更新。如果您的代码阻塞了主线程(例如,使用同步 NSURLConnection),则活动指示器在您的代码完成之前不会开始旋转。您必须在第二个线程中完成工作或使用异步操作。

      【讨论】:

        【解决方案3】:

        您需要实现UIWebViewDelegate 协议,以便了解您的网页在 UIWebView 中的加载状态:

        - (void)webViewDidStartLoad:(UIWebView *)webView {
          //start animating your activity indicator here.
        }
        - (void)webViewDidFinishLoad:(UIWebView *)webView {
          //stop animating your activity indicator here.
        }
        

        根据这些回调调用,您可以启动/停止您的活动指示器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-23
          • 2015-08-31
          • 2020-06-09
          • 2022-07-11
          • 1970-01-01
          • 2012-08-14
          相关资源
          最近更新 更多