私は3秒間押している間にボタンの色を変えようとしています。タイマーが3秒に達すると、色の変更は永久的になりますが、時間が経過する前にユーザーがボタンを離すと、ボタンは元の色に戻ります。私はこれまで持っていることはこれです:viewDidLoad
fireSomeMethod
でボタンを押したままUIButtonの色を変更し、x秒前にリリースされた場合は色の変更をキャンセルする方法はありますか?
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(fireSomeMethod)];
longPress.minimumPressDuration = 3.0;
[self.view addGestureRecognizer:longPress];
で 私は
- (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秒前にボタンを放すとすべてが元の状態に戻ります。おかげで事前