UIActivityIndicatorView выглядит пустым - PullRequest
0 голосов
/ 11 января 2012

У меня проблема с индикатором активности в моей камере.Я запускаю анимацию в этом методе здесь, затем загружаю данные оттуда, перезагружаю табличное представление и вызываю остановку анимации, когда numbersResponseData.length != 0, но я не могу видеть индикатор активности.

У меня есть вспомогательное представление стрелка, которая перемещаетсяслева при его загрузке я просто не вижу индикатор.

Это метод tableView:cellForRowAtIndexPath::

if(indexPath.section == 0)
{        
    if ((indexPath.row == 0) && (numbersResponseData.length == 0))
    {
        cellActivityIndicator =
            [[UIActivityIndicatorView alloc]
                initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
        [cellActivityIndicator startAnimating];
        [cell setAccessoryView:cellActivityIndicator];

        // Call ASIHTTPRequest methods to start xml download/cache process
        [self setRequestString:@"Numbers.xml"];
    }
    //will set other cells up later
}

UPdate:

Я добавил вызов UIActivityIndicator внутри другой части оператора if, и теперь он применилиндикатор активности для каждой ячейки, но теперь я их вижу.

if(indexPath.section == 0)
    {        
            cellActivityIndicator =
                [[UIActivityIndicatorView alloc]
                    initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
            [cellActivityIndicator startAnimating];
            [cell setAccessoryView:cellActivityIndicator];
        if ((indexPath.row == 0) && (numbersResponseData.length == 0))
        {
            cellActivityIndicator =
                [[UIActivityIndicatorView alloc]
                    initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
            [cellActivityIndicator startAnimating];
            [cell setAccessoryView:cellActivityIndicator];

            // Call ASIHTTPRequest methods to start xml download/cache process
            [self setRequestString:@"Numbers.xml"];
        }
        //will set other cells up later
    }

Я отладил оператор .row if и вызывающе вызывал его ... Я просто не понимаю, почему он будет работать с оператором ifно не следующий.

Ответы [ 2 ]

1 голос
/ 11 января 2012

Я думаю, что ваш UIActivityIndicatorView скрывается за UITableView. Снимите этот код и проверьте, можете ли вы видеть этот индикатор на экране или нет

    subViewActivityIndicator = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge] autorelease];
subViewActivityIndicator.frame=CGRectMake(150, 220, 37, 37);
subViewActivityIndicator.color = [UIColor colorWithRed:0.6 green:1 blue:0 alpha:1.0];
[self.tableview addSubview:subViewActivityIndicator];
[subViewActivityIndicator startAnimating];

чтобы удалить используйте это,

    [subViewActivityIndicator removeFromSuperview];
0 голосов
/ 11 января 2012

Вы вызываете этот код из цикла пользовательского интерфейса или из рабочего потока?Вам нужно будет использовать executeSelectorOnMainThread: для вызова изменений пользовательского интерфейса, если вы звоните из рабочего потока.Пожалуйста, обратитесь к:

http://blog.jayway.com/2010/03/30/performing-any-selector-on-the-main-thread/

...