Обновление UITableViewData - PullRequest
0 голосов
/ 18 мая 2011

У меня UITableView с панелью навигации вверху. У меня есть кнопка обновления в правой части панели навигации.

При нажатии на кнопку обновления мне нужно запустить индикатор активности, обновить таблицу и остановить индикатор активности.

-(void)refreshClicked{
    [spinner startAnimating];   //UIActivityIndicatorView object
    [appDelegate readJSONData]; //this is the method which populates the array
                                //for displaying in the tableview
}

Я хочу знать, как обновить таблицу после заполнения массива, а затем как остановить индикатор активности.

спасибо:)

Ответы [ 2 ]

5 голосов
/ 18 мая 2011

Обновить таблицу:

[tableView reloadData];

Индикатор остановки активности:

[spinner stopAnimating];

----- РЕДАКТИРОВАТЬ -----

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

Для просмотра таблицы:

Вы можете перезагрузить разделы просмотра таблицы с помощью хорошей анимации затухания, используя следующий код:

[tableView reloadSections:(NSIndexSet *)sections withRowAnimation:UITableViewRowAnimationFade];

Ваш индексный набор содержит все разделы, которые вы хотите перезагрузить, и у вас действительно есть другие опции для анимации перезагрузки.Посмотрите здесь: UITableViewRowAnimations

Чтобы создать NSIndexSet, см. эту ссылку

Что касается вашего счетчика, вы можете уменьшить его до альфа-нуля перед вызовом stopAnimatingсделав это:

-(void)fadeSpinner
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(stopAnimation)];

    spinner.alpha = 0;

    [UIView commitAnimations];
}

- (void)stopAnimation
{
    [spinner stopAnimating];
}
1 голос
/ 18 мая 2011

перезагрузить данные:

[yourTableviewController.tableView reloadData];

и если вам нужно ретранслировать:

[yourTableviewController.tableView setNeedsDisplay]; 
[yourTableviewController.tableView setNeedsLayout];
...