私はタイマーを持っています:
[NSTimer scheduledTimerWithTimeInterval:(float)jpegInterval/1000 target:self selector:@selector(jpegDownloaderSelector:) userInfo:url repeats:YES];
jpegDownloaderSelector は、url から画像のフェッチを実行し、以下のように imageView に設定します。
-(void) jpegDownloaderSelector:(NSTimer*)timer{
[self performSelectorInBackground:@selector(jpegDownloader:) withObject:(NSString*)[timer userInfo]];
}
-(void) jpegDownloader:(NSString*)imageUrl{
dispatch_async(dispatch_get_main_queue(), ^{
imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://10.8.9.100:509/jpeg"]];
imageView.image = [UIImage imageWithData:imgData];
});
}
私はgestureRecognizerでimageViewも設定しました
[imageView addGestureRecognizer:singleTapRecognizer];
[imageView addGestureRecognizer:doubleTapRecognizer];
レコグナイザーの定義は次のとおりです。
singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(functoCall:)];
singleTapRecognizer.numberOfTapsRequired = 1;
singleTapRecognizer.numberOfTouchesRequired = 1;
doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(funcToCall2:)];
doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;
私が抱えている問題は、タイマーが開始し、imageViewをダブルタップすると、ダブルタップ認識エンジンが応答せず、代わりにシングルタップが応答することです。
タイマー繰り返しパラメータに NO を設定すると、ダブルタップが応答しました。したがって、タイマーによって呼び出されるバックグラウンド関数が実行されているため、ダブルタップが応答していないと思われます。
誰でもバックグラウンド機能を実装でき、ダブルタップの認識に問題はないという提案があります。