【问题标题】:activityIndicator not appearing活动指标未出现
【发布时间】:2011-07-05 15:07:54
【问题描述】:

我在我的webView 上添加了一个activtyIndicator 并将其与文件所有者关联。我有一个来自tableView 的RSS 提要,当我点击一个单元格时,它会推送到webView。就像本教程一样。 RSS Tutorial

但是,当webView 开始加载时,activityIndicator 根本不会出现。 activityIndicatorwebView 文件的代码如下:

-(void)webViewDidStartLoad:(UIWebView *)webView {
    [activityIndicator startAnimating];
    activityIndicator.hidden = NO;
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    [activityIndicator stopAnimating];
    activityIndicator.hidden = YES;
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:FALSE];
}

各位有什么想法吗?

谢谢。

【问题讨论】:

  • 你真的将 UIActivityIndi​​catorView 添加为 UIWebView 的子视图吗? UIActivityIndi​​catorView的frame你设置了吗?也许创建一个类似CGRectMake(0.0f, 0.0f, 32.0f, 32.0f); activityIndicatorView.center = webView.center;的框架
  • @Wolfgang Schreurs:我没有将activityIndicator 添加为子视图。刚刚在 IB 中放置了一个普通的activityIndicator。它适用于我的其余文件,但由于某种原因不适用于这个文件。

标签: iphone uitableview uiwebview spinner uiactivityindicatorview


【解决方案1】:

最常见的错误是忘记设置webview的delegate:[theWebView setDelegate: self];

你已经这样做了吗?或者,如果您将任何 NSLog() 放入您的 webViewDidStartLoad,您看到输出了吗?

【讨论】:

  • 我已将 IB 中的 webView 代表连接为引用插座。另外,我的NSLog() 也有输出。很奇怪,它没有出现,因为它出现在我的其他页面上。你还有什么想法吗?谢谢。
  • 所以你可以在状态栏(左上角)看到网络活动指示器,但看不到你自定义的activityIndi​​catorView,对吧?
  • 是的,状态栏上的网络活动指示器正在旋转。我也在上面放了一个UILabel,它在加载时显示,在停止加载时消失。但是,activityIndicator 只是坐在那里不旋转。我已经检查过我已经将它连接到 IB 中的文件所有者。很奇怪。谢谢。
  • 嗯,奇怪。请仔细检查您的插座是否连接到正确的活动指示器视图。尝试在代码中更改其样式,以确保您引用了正确的视图。
  • 我怎样才能改变它的风格?你可以给我一个例子吗?谢谢。
【解决方案2】:

将您的子视图放在前面。 [self bringSubViewToFront:activityindicator];

【讨论】:

  • 不幸的是,我的activityIndicator 不在子视图中。谢谢。
【解决方案3】:

我遇到了同样的问题(在我的 UIWebView 上有一个 UIActivityIndi​​cator),并且看不到活动指示器。这就是我所做的:

将活动指示器放在 uiwebview 后面并最初隐藏 uiwebview,然后在加载时显示活动指示器。加载完成后隐藏微调器并显示 uiwebview。

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    [spinner startAnimating];
    [spinner setHidden:FALSE];
    [loadButton setHidden:TRUE];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [spinner stopAnimating];
    [myWebView setHidden:FALSE];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多