2009-08-08 25 views
0

我想要在屏幕上的任何位置獲得點擊量。觸摸量

這是我的代碼:

-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event 
{ 
    DebugLog(@"touches: %d", [touches count]); 
} 

該方法在有源視圖控制器實現。

但它不檢測多個水龍頭 - 它報告我他們作爲一個水龍頭。

我怎樣才能得到水龍頭的數量?

謝謝。

回答

3

問題在於如何在該方法中報告觸摸。該方法中的NSSet touches包含一個或多個UITouch實例,並且每個UITouch實例表示來自屏幕上單個手指的觸摸事件。因此,如果用戶用兩根手指觸摸屏幕,touches集合將包含兩個UITouch對象。

問題是單個UITouch可能會有多個水龍頭而不被視爲多個UITouches。如果設備在大致相同的位置檢測到兩次敲擊(手指向下且沒有明顯移動),則它會將它們組合成包含多個敲擊的單個UITouch。在這種情況下,您可以使用UITouch上的tapCount選擇器來計算觸摸的觸摸點數。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSLog(@"Got %u touches", [touches count]); 
    for(UITouch *touch in touches) { 
     NSLog(@"Touch had %u taps", [touch tapCount]); 
    } 
}

欲瞭解更多信息:

1

聽起來像是你可能只需要啓用通過界面生成器視圖 「多觸摸」 屬性檢查器上用戶界面元素或視圖。

我總是忘記這一點,並遇到同樣的問題,直到我記得兩個小時後我必須檢查那個盒子。