【发布时间】:2026-01-07 07:05:02
【问题描述】:
在加载时淡出 webview 以确保人们知道它的加载的最佳方法是什么?
【问题讨论】:
标签: iphone ios sdk ios4 uiwebview
在加载时淡出 webview 以确保人们知道它的加载的最佳方法是什么?
【问题讨论】:
标签: iphone ios sdk ios4 uiwebview
使用自定义的UIView,它是一种半透明的灰色,并将其显示在 UIWebView 的顶部。这个 UIView 的控制器应该是UIWebView 的委托,因此它知道何时完成加载,然后可以自行关闭。编辑:这也使您能够使用自己的UIActivityViewIndicator(纺车)放置在任何您喜欢的位置,比共享的状态栏更突出。
或者,您可以将UIAlertView 子类化并取出背景图像(那个蓝色框),然后在加载时取出show 这个UIAlertView。
编辑教程链接:Tutorial Link 是一个教程,告诉你如何做到这一点(方法 1)
【讨论】:
您可以通过更改动画序列中的 alpha 来淡化 webview。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
myWebView.alpha = 0.0;
[UIView commitAnimations];
让用户知道正在加载的 webview 的首选方法是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
}
【讨论】:
您可以在视图上放置一个黑色且不透明度为 20% 的视图以使其变暗(这样做的好处是用户与下面的 web 视图的交互将被禁用)
【讨论】:
为什么要淡出,为什么不直接使用UIActivityIndicator?还是使用共享的?如果你真的想淡出它,你总是可以创建一个UIView,将背景颜色设置为黑色,alpha 为 0.5。然后在加载时将其添加到您的 UIWebView 之上,完成后将其删除。
【讨论】: