2013-05-10 42 views
0

想象一下,UIButton和用戶在按鈕外的某處輕按,然後滑動到該按鈕上。如果我想讓按鈕檢測到這樣的觸摸,我可以註冊它的任何「觸摸拖動輸入」事件。如何檢測UIScrollView上的「拖動回車」

我的問題:有沒有辦法實現UIScrollView相同? 即,我點擊滾動視圖之外的某個地方,將我的手指拖到滾動視圖上,只要我進入滾動視圖框架,它就開始平移? (因爲默認情況下它不,我要開始我觸摸到內部的滾動視圖,以PAN)

回答

0

試想一個UIButton和誰水龍頭的地方以外的按鈕的用戶,然後滑動到它。如果我想讓按鈕檢測到這樣的觸摸,我可以註冊它的任何「觸摸拖動輸入」事件

其實,不,你不能。一個UIControl將不會得到控制事件的任何,除非觸摸開始的控制。

而這也是出於同樣的原因,您將看到與滾動視圖類似的效果。這是iOS上觸控傳送的完整基礎。觸摸「屬於」視圖,即最初觸摸

畢竟,運行時不可能知道你是拖動到滾動視圖...

1

如果你想做到這一點,你必須做使用-touchesBegan自定義實現, -touchesMoved和-touchesEnded

允許您執行此操作的UIResponder類(所有ViewControllers繼承的)的文檔是here

希望你能想出從這裏做什麼。 :)

作爲一個額外的暗示,你也很可能需要使用此功能

bool contains = CGRectContainsPoint(CGRect rect, CGPoint point);