2010-09-28 64 views
12

縱觀documentation,看起來新的高級手勢API不能確定超出基本{左,右,上,下}的滑動方向。iOS高級手勢:獲取滑動方向矢量

我需要滑動的起點和方向。

有沒有辦法檢索這個,而不是從頭編寫我自己的高級手勢庫從基本手勢?

如果這是我唯一的選擇,任何人都可以指向我的一些開放源代碼嗎?

回答

14

Got it!文檔是here,位於底部的'創建自定義手勢識別器'。

基本上蘋果提供的六種手勢都來自UIGestureRecognizer,您可以用同樣的方法制作自己的手勢識別器。

然後,在您的視圖的init中,您連接了您的識別器。並且只需將其掛鉤即可自動重新路由傳入的觸摸事件。

實際上,默認行爲是讓您的識別器成爲這些事件的觀察者。這意味着您的視圖會像以前那樣獲取它們,此外,如果您的識別器發現了一個手勢,它將觸發您的視圖中的myCustomEventHandler方法(當您連接識別器時您通過了它的選擇器)。

但是有時您想要防止原始觸摸事件進入視圖,並且您可以在識別器中擺弄這樣做。所以將其視爲「觀察者」有點誤導。

還有一種情況是,一個手勢需要吃另一個手勢。就像你不能只發回一次點擊,如果你的觀點也準備好接受雙擊。您必須等待雙擊識別器報告失敗。如果成功,你需要失敗的一次點擊 - 顯然你不希望再發回!

+13

鏈接已移到此處:http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizers/GestureRecognizers.html – 2011-01-26 02:24:33

+0

鏈接已移至此處:https:// developer。 apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_basics.html – sleepwalkerfx 2014-06-11 08:06:10