我的问题如下:
我在标准视图控制器中显示带有附件的消息视图。当用户按住附件图标时,它会在屏幕上显示图像,当用户放手时,图像就会消失。这是为了在用户查看图像时帮助检测屏幕截图。
我使用长按手势识别器来检测触摸,然后使用 touchesEnded 或 touchesCancelled 来检测触摸的释放。
当用户用第二根手指按下屏幕时会出现我的问题,因为没有报告第二次触摸的释放。代码如下,方法按此顺序调用:
- 第一次长按 -> attachmentLongPressed 调用
- 第二次长按 -> attachmentLongPressed 调用
- 释放第一根手指 -> touchesEnded 调用
松开第二根手指 -> 什么都没有
-(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]; } }
结果是图像视图留在屏幕上,无法将其关闭。有人有什么建议吗?