iPhone SDK - WebView活动指示器

时间:2010-01-25 14:50:21

标签: iphone sdk view uiwebview uitabbar

我在iPhone SDK中的UIWebView存在很大问题。 我有一个TabBarApplication,每个Tab上都有一个WebView(第一个除外)。

因为加载视图需要一段时间才能显示我想要显示活动指示符。

以下是我正在使用的代码:

-(void)webViewDidStartLoad:(UIWebView *) portal {

[UIApplication sharedApplication] .networkActivityIndi​​catorVisible = YES;  }

-(void)webViewDidFinishLoad:(UIWebView *) portal{
 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
}

它不能以这种方式工作......我在第一个选项卡中的WebView被称为“门户”,这就是我在上面输入它的原因,但是如果我使用WebView则存在同样的问题。

有什么想法吗?这太难了,这不可能是真的。 我现在正在寻找一条安静的线索,没有找到任何帮助我建立这样一个(认为很容易)的活动指示器。

非常感谢您的努力!

来自德国的问候 托拜厄斯

1 个答案:

答案 0 :(得分:6)

我通常使用UIActivityIndi​​catorView。

如果在Web视图的顶部有一个导航控制器,它可以完美地运行:

-(void)webViewDidStartLoad:(UIWebView *) portal {
UIActivityIndicatorView *actInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
UIBarButtonItem *actItem = [[UIBarButtonItem alloc] initWithCustomView:actInd];

self.navigationItem.rightBarButtonItem = actItem;

[actInd startAnimating];
[actInd release];
[actItem release];
}

要摆脱指标:

-(void)webViewDidFinishLoad:(UIWebView *) portal{
 self.navigationItem.rightBarButtonItem = nil;
}

如果您没有使用导航控制器,那么我只需使用较大的样式UIActivityIndi​​catorViewStyleWhiteLarge或将视图放在屏幕上的黑色半透明视图上,然后在加载完成时将其删除。