NStimer выпуск в Какао-Touch
Мое приложение должно показывать временное сообщение, поэтому я создал Toast как android сам. Это хорошо работает только для одного тоста. Я использую NSTimer, чтобы скрыть сообщение. Если я показываю более одного тоста, таймер становится проблемой. Только последний добавленный тост становится скрытым, другие не скрываются. Как я могу спрятать все тосты?
Код:
Удалить функцию:
-(void)removeToast
{
NSLog(@"removed");
[self.view removeFromSuperview];
}
Таймер запуска:
timer = [NSTimer scheduledTimerWithTimeInterval:(4.0f)
target:self
selector:@selector(xxxx)
userInfo:nil repeats:NO];
Я написал это выше в отдельном NSObject
класс и создал объект. Мне нужно уточнить, как запустить два NSTimer одновременно или отслеживать все NSObjects
,
Создание объекта в viewcontroller @property(nonatomic,strong)Toast *toast;
1 ответ
Нет необходимости хранить время таймера в иваре для вашей цели. Используйте параметр userinfo: для передачи представления, которое вы хотите скрыть при срабатывании таймера, например:
[NSTimer scheduledTimerWithTimeInterval:(4.0f)
target:self
selector:@selector(xxxx)
userInfo:yourView repeats:NO];
Затем в вашем селекторе получите представление из userInfo и скройте его. Вы можете найти рабочий образец здесь, строка 37.