У меня на экране несколько панелей настроек и кнопок. Мне нужно скрыть их, когда пользователь не нажимал / не нажимал никакую кнопку в течение последних 5 секунд. Как я могу это сделать? Как я могу определить, что в какой-то период не было совершено никаких действий?

0
Yevgeniy Leychenko 19 Дек 2013 в 14:12

2 ответа

Лучший ответ

Если у вас есть способ скрыть кнопку, назовите его hideButtons, вы можете выполнить селектор после задержки, чтобы скрыть кнопку:

[self performSelector:@selector(hideButtons) withObject:nil afterDelay:5.0];

И в методе, связанном с вашим UIGestureRecognizer, отмените его

[NSObject cancelPreviousPerformRequestsWithTarget:self];
//next line only if you want to restart counting no action performed for 5 sec.
[self performSelector:@selector(hideButtons) withObject:nil afterDelay:5.0];
1
zbMax 19 Дек 2013 в 10:26

Есть простые шаги, которым вы можете следовать, чтобы добиться этого -

  • Показать вид кнопок
  • Запустить NSTimer
  • Если нажата какая-либо кнопка, при нажатии кнопки перезапуск NSTimer
  • В противном случае через 5 секунд скройте представление и удалите его из супервизора, а затем аннулируйте свой NSTimer.

Удачи!

3
Devel 19 Дек 2013 в 10:23