iOS SDK使webview在加载时淡出

时间:2011-01-19 21:32:38

标签: iphone ios sdk ios4 uiwebview

什么是在加载时淡出网页视图的最佳方式,以确保人们知道其加载?

4 个答案:

答案 0 :(得分:5)

使用半透明灰色的自定义UIView并将其显示在UIWebView的顶部。这个UIView的控制器应该是UIWebView的委托,因此它知道何时完成加载,然后可以解散自己。编辑:这也为您提供了一个优势,即您可以使用自己的UIActivityViewIndicator(旋转轮)放置在您想要比状态栏共享的地方更为突出的地方。

或者,您可以继承UIAlertView并取出背景图片(蓝色框),然后在加载时show UIAlertView

编辑教程链接:Tutorial Link是一个教程,告诉您如何做到这一点(方法1)

答案 1 :(得分:5)

您可以通过更改动画序列中的alpha来淡化webview。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
myWebView.alpha = 0.0;
[UIView commitAnimations];

让用户了解加载网页浏览的首选方法是networkActivityIndicator

#pragma mark -
#pragma mark WebvView Delegates

-(void)webViewDidStartLoad:(UIWebView *)webView {
    UIApplication* app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = YES; // to stop it, set this to NO
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    UIApplication* app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = NO; // to stop it, set this to NO
}

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    UIApplication* app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = NO; // to stop it, set this to NO
}

答案 2 :(得分:1)

你可以在视图上放置一个黑色和20%不透明度的视图,以便调暗它(这样做的好处是用户与下面的webview的交互将被禁用)

答案 3 :(得分:0)

为什么要淡出它,为什么不使用UIActivityIndicator?或者使用共享的?如果你真的想淡出它,你可以随时创建一个UIView,将背景颜色设置为黑色,其中alpha为.5。然后在加载时将其添加到UIWebView的正上方,完成后将其删除。