Могу ли я отключить кнопку на короткое время? У меня есть вид регистрации, на 3 неправильных попытках он примет пользовательский внешний вид регистрации, и он отключит кнопку регистрации в течение некоторого времени, скажем, 5 минут. Является ли это возможным?Отключить UIControl на некоторое время
ответ
- (void) processAfterWrongAttempts {
button.enabled = NO;
double delayInSeconds = 5.0 * 60;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
button.enabled = YES;
});
}
Да, вы можете отключить кнопку, если хотите. После этого вы можете вызвать таймер в течение 5 минут. и когда срабатывает таймер. Вы можете включить эту кнопку ..
Disable Зарегистрирован Кнопку затем, расписание NSTimer
в течение 5 мин.
[NSTimer scheduledTimerWithTimeInterval:300.0f target:self selector:@selector(showSignUpButton:) userInfo:nil repeats:NO];
-(void)showSignUpButton:(NSTimer *)timer
{
[signUpButton setEnabled:YES];
}
Что вы можете сделать, это использовать Grand Central Dispatch. GCD - ваш друг.
Как это работает, вы запросите определенный блок кода, который будет выполнен через определенное время.
Давайте предположим, что myButton
является кнопкой, которую вы хотите отключить, а затем включить только по истечении определенного времени, и numTries
этого количество раз вы пытались подписавшись:
в файле заголовок:
@property (nonatomic, assign) int numTries;
в вашей реализации файл (.m):
@synthesize numTries = numTries_;
- (IBAction)buttonClicked:(id)sender {
self.numTries++;
if (self.numTries > 3) {
myButton.enabled = NO;
double delayInSeconds = 15.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^{
myButton.enabled = YES;
numTries = 0;
});
}
}
Это приведет к этому блоку кода выполняется через 15 секунд. Вы можете, конечно, изменить delayInSeconds
на любое значение, которое вы пожелаете. dispatch_get_main_queue()
возвращает поток пользовательского интерфейса, что означает, что код в блоке ^{ ... }
выполняется в потоке пользовательского интерфейса.
Спасибо за подробный ответ Блейн Мюррей :) Он отлично работает – Hassy
Почему бы не использовать этот
- (void) startTimer {
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(enable)
userInfo:nil
repeats:NO];
}
- (void) enable {
[signUpButton setEnabled:YES];
}
Лучшее решение было бы использовать performSelector вместо scheduledTimerWithTimeInterval
[self performSelector:@select(enable) withObject:nil afterDelay:3.0];
//Disable button at start
[self performSelector:@select(showButton) withObject:nil afterDelay:5.0];
//write enable button code in showButton method
другой путь вокруг
[self performBlock:^{
//enable button
} afterDelay:5.0f];
- 1. Отключить сборку мусора node.js на некоторое время
- 2. как отключить прослушиватель прикосновений на некоторое время
- 3. Можно ли отключить Resharper на некоторое время?
- 4. Как отключить инструкцию ввода через некоторое время?
- 5. Android: отключить кнопку через некоторое время
- 6. RabbitMQ отключить меня через некоторое время
- 7. Активность на некоторое время?
- 8. Нажмите отключить на некоторое время does't работы с JQuery
- 9. addClass() только на некоторое время
- 10. Скрыть div на некоторое время
- 11. Запретить роботы на некоторое время
- 12. Блокировка кнопки после нажатия на некоторое время
- 13. Приложение InputStream "lags/stuns" на некоторое время
- 14. Сессия Некоторое время reurn Null И некоторое время reurn value
- 15. WebLogic работает некоторое время
- 16. Как отключить всплывающее диалоговое окно через некоторое время?
- 17. Как отключить набранный вызов через некоторое время автоматически в ежевике?
- 18. Управление кнопками занимает некоторое время, чтобы отключить в диалоговом окне
- 19. javascript позволяет отключить текстовое поле через некоторое время
- 20. Loop с некоторое время
- 21. java.lang.NoClassDefFoundError через некоторое время
- 22. Некоторое время вызывается страница asp.net и некоторое время не
- 23. file_put_contents через некоторое время
- 24. pushViewController занимает некоторое время
- 25. Уведомление через некоторое время
- 26. JsonResult усекается Некоторое время
- 27. кнопки делают отвечать на запросы на некоторое время Явы
- 28. Остановить возможность нажимать кнопку на некоторое время
- 29. Закрытие приложения для Android на некоторое время
- 30. mongoimport оставляет коллекцию пустой на некоторое время
да, лучший подход ... я записывал сам ответ. : P –
Да лучше использовать другую тему ..! – Gihan
@Gihan Никаких других потоков не было. Блок будет выполнен в основном потоке. Блоки легкие. –