Я пытаюсь изменить цвет кнопки при нажатии в течение 3 секунд. После того, как таймер достигнет 3-й секунды, изменение цвета является постоянным, но если пользователь отпускает кнопку до истечения времени, кнопка возвращается к исходному цвету. То, что я до сих пор это: в viewDidLoad
Как изменить цвет UIButton при нажатии ТОЛЬКО и отменить изменение цвета, если оно выпущено до x секунд?
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(fireSomeMethod)];
longPress.minimumPressDuration = 3.0;
[self.view addGestureRecognizer:longPress];
в fireSomeMethod
У меня есть
- (void)someMethod {
[UIView transitionWithView:self.button
duration:2.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
self.button.backgroundColor = [UIColor redColor];
}
completion:^(BOOL finished) {
NSLog(@"animation finished");
}];
}
Это требует от меня удерживать кнопку нажатой в течение 3 секунд для анимации, чтобы стрелять и анимация сама занимает 2 секунд. Желаемое поведение заключается в том, что анимация начинается, когда longPress запускается, и я отпускаю кнопку до 3 секунд, все возвращается к тому, как это было. Спасибо за вашу помощь заранее