1

iPhone SDK 中的 UIWebView 有一个大问题。我有一个 TabBarApplication,每个选项卡上有一个 WebView(第一个除外)。

因为加载视图需要一段时间,所以我想显示一个活动指示器。

这是我用来执行此操作的代码:

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

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

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

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

有任何想法吗?不能说这太难了。我现在正在寻找一个安静的线索,但没有发现任何东西可以帮助我建立这样一个(认为这很容易)活动指标。

非常感谢您的努力!

来自德国的问候托拜厄斯

4

1 回答 1

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 或将视图放在屏幕上的深色半透明视图顶部,然后在加载完成时将其删除。

于 2010-01-25T15:38:09.377 回答