как показать UIActivityIndicatorView для таблицы, которая загружается - PullRequest
1 голос
/ 03 ноября 2011

Довольно короткий вопрос, как я могу загрузить UIActivityIndicatorView, скажем, в течение 0,5 секунды с момента загрузки представления?

Я осмотрелся, но большинство уроков используют веб-просмотр, где создается условие if, где (webview.loading) используется для определения длины анимации и т. Д. так что я просто удивляюсь, как это сделать, когда представление загружается за 0,5 секунды.

В настоящее время у меня есть метод, который центрирует ранее выбранную ячейку, и я хотел бы, чтобы индикатор работал до тех пор, пока это не будет сделано.

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
[self performSelector:@selector(scrollToRowAtIndexPath) withObject:nil afterDelay:1.0];
}

- (void)scrollToRowAtIndexPath
{    
    [self.tableView reloadData];
    [self.tableView scrollToRowAtIndexPath:oldCheckedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
}

1 Ответ

2 голосов
/ 03 ноября 2011

Может быть, что-то подобное поможет:

-(void)viewDidLoad
{
    [super viewDidLoad];

    //... all your previous charge.

    UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];

    activity.hidesWhenStopped = YES;

    activity.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin |
        UIViewAutoresizingFlexibleHeight |
        UIViewAutoresizingFlexibleLeftMargin |
        UIViewAutoresizingFlexibleRightMargin |
        UIViewAutoresizingFlexibleTopMargin |
        UIViewAutoresizingFlexibleWidth;

    [yourTable addSubview:activity];

    [activity startAnimating];

    [activity performSelector:@selector(stopAnimating) withObject:nil afterDelay:0.5];

    [activity release];
}
...