2010-08-03 24 views
3

我的問題涉及創建一個與文本視圖控件中的蘋果放大鏡有點類似的控件,觸摸一秒左右彈出放大鏡,然後拖動手指選擇你想要的位置。在iPhone SDK中檢測到手指滑過的視圖

我創建了檢測長固定觸摸所需的所有方法。現在我需要檢測我的手指滑過的UIView。我不確定如何去做到這一點,任何人都可以指引我走向正確的方向嗎?

回答

2

需要報告它被感動了可以檢測使用UIResponder觸摸任何UIView的繼承方法

要能夠報告倒是可以被繼承,並在你的子類
– touchesBegan:withEvent: 
– touchesMoved:withEvent: 
– touchesEnded:withEvent: 
– touchesCancelled:withEvent: 

UIViews你可以在上面的方法中定義一個委託方法。通過將代表設置爲一些中央報告類,您可以獲得識別出的所有接觸和視圖。

,如果你想觸摸事件正常工作,不要忘記通過觸摸事件,即:

[[self superview] touchesBegan:touches withEvent:event];

+0

很酷,我現在檢查一下。但似乎是正確的方法。 – johnw188 2010-08-04 00:26:59

+0

實際上,您可以定義一個處理所有觸摸報告的單例類,而不是使用子類和委託方法,如 [[TouchCatcher sharedSingleton] objectReceivedTouch:self],並在上面顯示的觸摸類中調用它。 – 2010-08-04 00:44:05

0

在處理移動觸摸的方法中,您可以向包含各種子視圖的超級視圖發送命中測試。命中測試將返回視圖中當前點處最深的視圖。它可能看起來像這樣。

//Just detected that the finger is stationary 
MyView *touchedView = [containerView hitTest:touchPoint withEvent:event]; 
[touchedView performSomeAction]; 

您應該執行一些類檢查以確保視圖實際上是一個可以對觸摸做出反應的視圖。