正如标题中所提到的,我正在寻找检测所有UIWebViews已经完成加载的方法,同时加载HTML字符串。
我有一个自定义视图,其中有5个Web视图(1个用于提问,4个用于选项)。他们每个人都将html字符串加载为:
[queWV loadHTMLString:queHtml baseURL:nil];
[opt1WV loadHTMLString:opt1Html baseURL:nil];
[opt2WV loadHTMLString:opt2Html baseURL:nil];
[opt3WV loadHTMLString:opt3Html baseURL:nil];
[opt4WV loadHTMLString:opt4Html baseURL:nil];
我已尝试使用webViewDidFinishLoad
进行检查- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if(webView == opt4WV)
{
//All web views has finished loading
}
}
但实际上,根据要加载的内容,随着webViewDidFinishLoad方法调用随机Web视图的方法不正确。
有没有办法检测所有网页浏览量的加载完成情况?
谢谢!
答案 0 :(得分:4)
也许我过于简单化或没有看到什么,但你是否尝试将webViewDidFinishLoad与计数器结合使用?因此,如果您有5个Web视图,请实现1到5的计数器,并计算webViewDidFinishLoad被调用的次数。当你到达5时,所有视图都被加载。
答案 1 :(得分:3)
是的,使用计数器来跟踪并确保所有Web视图委托都设置为同一个控制器
答案 2 :(得分:2)
int webViewLoadCount = 0;
然后像这样对待这个计数器
<。>在.m文件中的UIWebview委托方法- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = webView.request.URL.absoluteString;
if ([string rangeOfString:queHtml]) {
NSLog(@"queWV webview loaded with this %@ ",queHtml);
webViewLoadCount = webViewLoadCount + 1;
} else if ([string rangeOfString:opt1Html]) {
NSLog(@"opt1WV webview loaded with this %@ ",opt1Html);
webViewLoadCount = webViewLoadCount + 1;
} else if ([string rangeOfString:opt2Html]) {
NSLog(@"opt2WV webview loaded with this %@ ",opt2Html);
webViewLoadCount = webViewLoadCount + 1;
}else if ([string rangeOfString:opt3Html]) {
NSLog(@"opt3WV webview loaded with this %@ ",opt3Html);
webViewLoadCount = webViewLoadCount + 1;
}else if ([string rangeOfString:opt4Html]) {
NSLog(@"opt4WV webview loaded with this %@ ",opt4Html);
webViewLoadCount = webViewLoadCount + 1;
}
}
我希望这会对你有所帮助
答案 3 :(得分:2)
可能会有所帮助
全球NSInteger counter;
在viewDidLoad
初始化counter = 0;
然后
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
counter++;
if(counter == 5)
{
//All web views has finished loading
counter = 0; //again reset to 0
}
}
快乐的编码......
答案 4 :(得分:1)
声明变量“加载”此函数
int loaded = 0
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if(webView == queWV || webView == opt1WV || webView == opt2WV || webView == opt3WV || webView == opt4WV )
{
loaded += 1;
}
if (loaded ==5) {
// process
}
}