我想要在屏幕上的任何位置獲得點擊量。觸摸量
這是我的代碼:
-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event
{
DebugLog(@"touches: %d", [touches count]);
}
該方法在有源視圖控制器實現。
但它不檢測多個水龍頭 - 它報告我他們作爲一個水龍頭。
我怎樣才能得到水龍頭的數量?
謝謝。
我想要在屏幕上的任何位置獲得點擊量。觸摸量
這是我的代碼:
-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event
{
DebugLog(@"touches: %d", [touches count]);
}
該方法在有源視圖控制器實現。
但它不檢測多個水龍頭 - 它報告我他們作爲一個水龍頭。
我怎樣才能得到水龍頭的數量?
謝謝。
問題在於如何在該方法中報告觸摸。該方法中的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]);
}
}
欲瞭解更多信息:
聽起來像是你可能只需要啓用通過界面生成器視圖 「多觸摸」 屬性檢查器上用戶界面元素或視圖。
我總是忘記這一點,並遇到同樣的問題,直到我記得兩個小時後我必須檢查那個盒子。