Несколько UIWebView и один спиннер активности - PullRequest
0 голосов
/ 10 августа 2011

У меня есть установка с тремя различными UIWebViews, которая загружает данные из Интернета.Время, необходимое для их завершения, конечно, различается и порядок их завершения.

Они начинают свою загрузку примерно так (отдельные темы ...):

- (void)update {
    [spinner startAnimating];
    [self performSelectorInBackground:@selector(webView1) withObject:nil];
    [self performSelectorInBackground:@selector(webView2) withObject:nil];
    [self performSelectorInBackground:@selector(webView3) withObject:nil];
}

Икогда первый из них завершается, он останавливает вращатель:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [spinner stopAnimating];
}

Я хочу, чтобы вращатель остановился, когда все три UIWebView завершены с их загрузкой.Как мне управлять этим простым способом?

Ответы [ 2 ]

0 голосов
/ 11 августа 2011

Это сработало (вроде ...)

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    if (!webViewOne.loading && !webViewTwo.loading && !webViewThree.loading)
        [spinner stopAnimating];
}

Но несколько раз спиннер останавливался до того, как все три веб-просмотра закончили загрузку.Я думаю, это потому, что некоторые из моих процессов, которые должны запустить веб-просмотры, еще не начали веб-просмотр.Следовательно, оператор if мог бы быть верным в любом случае, если один процесс намного медленнее другого ... Хм, мне нужно проверить, что мои процессы не запущены.Есть идеи?

0 голосов
/ 10 августа 2011

Как то так?

- (void)webViewDidFinishLoad:(UIWebView *)webView {
        end = YES;
        for (int i = 0 ; i < 3 ; i ++)
         if (webViews[i].loading)
            end = NO;

        if (end)
            [spinner stopAnimating];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...