申し訳ありませんが、これは繰り返しの質問ですが、私が見つけることができるすべての解決策を試しましたが、成功しませんでした.
とにかく、ここに私の問題があります。長押しジェスチャでタイマーを開始し、そのジェスチャがキャンセルされたとき、またはアクションが完了したときに停止する次のコードがあります。
-(void)photoLongPress:(UILongPressGestureRecognizer *)press
{
NSTimer *timer = nil;
if (press.state == UIGestureRecognizerStateBegan)
{
//Start timer
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(photoLongPressTimer:) userInfo:nil repeats:YES];
}
if (press.state == UIGestureRecognizerStateEnded)
{
[timer invalidate];
timer = nil;
}
}
-(void)photoLongPressTimer:(NSTimer *)timer
{
DAProgressOverlayView *progress = (DAProgressOverlayView *)[self.view viewWithTag:kTagPhotoDeleteProgressIndicator];
progress.progress += 0.08;
if (progress.progress == 1)
{
[self deletePhotoSelection];
[timer invalidate];
timer = nil;
}
}
メソッドで無効化するとタイマーは停止しますが、photoLongPressTimer
メソッドでジェスチャが停止した場合は停止しませんphotoLongPress
。これはなぜでしょうか?私は困惑しています。
ありがとう。