2016-11-16 2 views
1

Как уже упоминалось в названии, я ищу способ обнаружить, что все UIWebViews имеют загруженную загрузку, которая одновременно загружает HTML-строку.Обнаружить всю загрузку UIWebViews: Objective-C

У меня есть один пользовательский вид, в котором есть 5 веб-представлений (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 становится называется для случайных взглядов веб, в зависимости от содержания загружать.

Есть ли способ определить степень загрузки для всех видов сети?

Спасибо!

+0

вы можете использовать некоторые логические переменные для обнаружения каждого Webview завершения загрузки. – vaibhav

+0

да, я думаю, там мы можем поддерживать счетчик или массив, но иногда может быть 3 или 6 веб-просмотров, dpending на количество опций. Есть ли какой-либо другой надежный способ его достижения? – iAkki

+0

вы можете получить точную цифру о том, сколько загрузок веб-страниц одновременно? – vaibhav

ответ

4

Возможно, я слишком упрощаю или что-то не вижу, но попытался ли вы использовать webViewDidFinishLoad в сочетании с счетчиком? Итак, если у вас есть 5 веб-представлений, выполните счетчик от 1 до 5 и подсчитайте, сколько раз вызывает вызов webViewDidFinishLoad. Когда вы дойдете до 5, все представления загрузятся.

+0

да, для этого мне потребуется отслеживать количество загрузки веб-просмотров. – iAkki

3

да, использовать счетчик, чтобы следить и убедиться, что все веб-мнения делегатов настроены на тот же контроллер

+0

Я думаю, что более подробная информация для начинающих программистов может быть полезной. –

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 
 
     } 
 
}

2

в файле .h создать один счетчик, как этот

int webViewLoadCount = 0; 

затем trke этот счетчик, как таким образом

в .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; 
    } 
} 

я надеюсь, что это поможет вам

2

Может быть полезно

принять NSInteger counter; глобально

in viewDidLoad Инициализация counter = 0;

затем

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
counter++; 

if(counter == 5) 
{ 
    //All web views has finished loading 
    counter = 0; //again reset to 0 
}  
} 

Счастливое кодирование ...

Смежные вопросы