什么是在加载时淡出网页视图的最佳方式,以确保人们知道其加载?
答案 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
的正上方,完成后将其删除。