私の問題は次のとおりです。
標準のViewControllerで、添付ファイル付きのメッセージビューを表示しています。ユーザーが添付アイコンを押し続けると、画面に画像が表示され、ユーザーが離すと画像が消えます。これは、ユーザーが画像を表示しているときにスクリーンショットを検出するのに役立ちます。
長押しのジェスチャ認識機能を使用してタッチを検出してから、touchsEndedまたはtouchesCancelledを使用してタッチのリリースを検出します。
2回目のタッチのリリースが報告されないため、ユーザーが2本目の指で画面を押すと問題が発生します。コードは以下のとおりです。メソッドは次の順序で呼び出されます。
- 最初の長押し->attachmentLongPressedと呼ばれる
- 2回目の長押し->attachmentLongPressedと呼ばれる
- 最初の指を離す->touchesEndedcalled
人差し指を離す->何も呼ばれない
-(void)attachmentImageLongPressed:(UIImageView *)sender{ if(!self.isAttachmentOpen){ [self setAttachmentOpen:YES]; // Show image... } } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ [self setAttachmentOpen:NO]; // Remove image from view } -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { if(self.isAttachmentOpen){ [self screenshotDetected]; } }
その結果、画像ビューは画面に表示されたままになり、それを閉じる方法はありません。誰か提案がありますか?