индикатор активности анимируется только один раз - PullRequest
0 голосов
/ 25 сентября 2011

Я создал пользовательскую ячейку «загрузить больше» в нижней части моего табличного представления.И я пытаюсь анимировать индикатор активности, пока таблица заполняется еще 5 строками.Поскольку данные загружаются слишком быстро, я установил 2-секундный таймер, чтобы задержать процесс, и хочу показать анимацию индикатора.

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

вот мой код, когда пользователь выбирает ячейку ...

[moreCellIndicator startAnimating];           

//setup activity indicator timer
NSTimer *activityTimer = [NSTimer scheduledTimerWithTimeInterval: 2.0
                                                      target: self
                                                    selector:@selector(loadMoreTimer:)
                                                    userInfo: nil repeats:NO];

вот код, который срабатывает после таймера...

- (void) loadMoreTimer:(NSTimer *)theTimer {   

    //stop animating activity indicator
    [moreCellIndicator stopAnimating];

    //refresh table
    ... data gets reloaded

}

по какой-то причине при первом запуске кода индикатор будет анимирован, но больше нажимает и не будет анимировать.

любая помощь приветствуется.

chris

edit: moreCellIndicator объявлен так ...

UIActivityIndicatorView *moreCellIndicator;    
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *moreCellIndicator;

1 Ответ

0 голосов
/ 25 сентября 2011

Попробуйте release индикатор активности после его остановки и инициализируйте его, прежде чем запустить:

moreCellIndicator = [UIActivityIndicatorView alloc] init];

и вместо NSTimer используйте:

[self performSelector:@selector(loadMoreTimer:) withObject:self afterTimeDelay:2];

И измените свой метод на (id):sender

- (void)loadMoreTimer:(id)sender
...