我的问题如下:
我正在标准视图控制器中显示带附件的消息视图。当用户按下并保持附件图标时,它在屏幕上显示图像,当用户放开时图像消失。这是为了帮助在用户查看图像时检测屏幕截图。
我使用长按手势识别器来检测触摸,然后触摸或触摸取消以检测触摸的释放。
当用户用第二根手指按下屏幕时,我的问题就出现了,因为没有报告第二次触摸的释放。代码如下,方法按此顺序调用:
释放第二根手指 - >什么都没有叫
-(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];
}
}
结果是图像视图留在屏幕上而无法将其关闭。有人有什么建议吗?
答案 0 :(得分:0)
我认为应该在释放第二根手指时调用touchesEnded。您可以记录所有回调中的所有触摸,以找出正在调用的方法,
但是,长按手势可能会延迟触摸结束事件,因此请尝试将delayedTouchesEnded设置为FALSE。
gestureLongPressed.delaysTouchesEnded = FALSE