2013-03-05 61 views
0

我的問題如下:TouchesEnded未被調用第二次

我在標準視圖控制器中顯示帶附件的消息視圖。當用戶按下並保持附件圖標時,它會在屏幕上顯示圖像,當用戶放開圖像時消失。這有助於在用戶查看圖像時檢測屏幕截圖。

我使用長按手勢識別器來檢測觸摸,然後觸摸已着手或觸摸取消檢測觸摸的釋放。

當用戶使用第二個手指按下屏幕時會出現我的問題,因爲未報告第二次觸摸的發佈。代碼如下,該方法被調用的順序:

  1. 首先長按 - > attachmentLongPressed叫
  2. 第二長按 - > attachmentLongPressed叫
  3. 發佈第一根指頭 - > touchesEnded叫
  4. 鬆開第二根手指 - >叫什麼

    -(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

我認爲它應該被稱爲touchesEnded當釋放第二根手指。您可以記錄所有回調中的所有觸摸,找出正在調用哪種方法,

但是,長按手勢可能會延遲觸摸結束事件,因此請嘗試將delaysTouchesEnded設置爲FALSE。

gestureLongPressed.delaysTouchesEnded = FALSE

+0

touches ended不會被第二次調用,那就是問題所在。我記錄回調,這是我知道這一點。禁用它沒有任何意義,整個想法是,我需要觸摸結束被稱爲將圖像從屏幕上移開... – Alan 2013-03-06 07:16:17

相關問題