iPhone SDK - WebView活动指示器
题
我对 iPhone SDK 中的 UIWebView 有一个大问题。我有一个 TabBarApplication,每个选项卡上都有一个 WebView(第一个选项卡除外)。
因为加载视图需要一段时间,所以我想显示活动指示器。
这是我为此使用的代码:
-(void)webViewDidStartLoad:(UIWebView *) portal {
[UIApplication共享应用程序].networkActivityIndicatorVisible = YES;}
-(void)webViewDidFinishLoad:(UIWebView *) portal{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
这样不行...我在第一个选项卡中的 WebView 称为“portal”,这就是我在上面输入它的原因,但如果我使用 WebView 也存在同样的问题。
有任何想法吗?这不可能是真的,这太困难了。我正在安静地寻找线索一段时间,但没有找到任何可以帮助我构建这样一个(认为很容易)活动指示器的东西。
非常感谢您的努力!
来自德国Tobias的问候
解决方案
我通常使用 UIActivityIndicatorView。
如果您在 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;
}
如果您不使用导航控制器,那么我只需使用较大的样式 UIActivityIndicatorViewStyleWhiteLarge 或将视图放置在屏幕上的深色半透明视图之上,然后在加载完成时将其删除。
不隶属于 StackOverflow