2013-05-10 82 views
1

如果我想構建包含非常基本的輕掃檢測的應用程序,我如何確定用戶視圖上的滑動區域?例如,如果編程一個可彈奏的吉他,是否可能創建6個長和窄的按鈕來表示每個吉他弦,然後觸發一個由於刷新事件而不是「按」事件的方法?如何檢測滑動方向,觸摸位置等?

目前,我唯一的觸發按鈕的經驗是touchUpInside,並想知道是否有像swipeLeftToRight或swipteRightToLeft。

謝謝!

+0

您可能想使用手勢識別器。請參閱'UIGestureRecognizer'。你也可以'touchesBegan:'在'UIView'上。 – 2013-05-10 20:53:19

+0

這看起來正是我所需要的,謝謝! – jake9115 2013-05-10 21:05:23

回答

2

一種可能性:將你的界面到的意見(這可能是無形的),一個手勢識別每個視圖。如果手勢在其視圖中進行,則手勢識別器進行響應。

另一種可能性:整個界面是隻有一個手勢識別器的一個大視圖,您可以分析觸摸以精確找出,其中手勢發生。

+0

而我的書可能會幫助你:http://www.apeth.com/iOSBook/ch18.html#_gesture_recognizers – matt 2013-05-10 21:17:08

+0

謝謝馬特,我一定會翻閱你的書。只是爲了澄清,不可能簡單地定義一個按鈕內的區域或某個東西作爲一個GestureRecognizer,而是我應該做你說的使用視圖? – jake9115 2013-05-11 01:28:57

+1

你想檢測一個滑動。一個按鈕具有檢測水龍頭的自然願望。所以現在,如果我是你,我會保持按鈕不動! – matt 2013-05-11 01:34:29

1

調查UIGestureRecognizers。他們將被附加到視圖並向給定的選擇器發送消息。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html

+0

感謝您指點我正確的方向。請原諒我的無知,但我如何將這與視圖中的元素聯繫起來?我會先製作一個按鈕,然後以某種方式將這些UIGestureRecognizers附加到按鈕上?我習慣於通過控制拖動對象來定義視圖中的交互區域,並且不知道如何使用UIGestureRecognizers來實現。 – jake9115 2013-05-10 21:05:02

+1

您有兩種選擇。如果要使用Interface Builder,則可以將對象拖到IB中的對象窗格中。從那裏,他們可以通過做一個控制+拖動到你想要關聯的視圖來關聯視圖。如果您在代碼中完成此操作,請使用適當的init方法設置您的手勢識別器,然後使用[self.theViewItShouldBeAddedTo addGestureRecognizer:theGestureRecognizerToAdd]將其添加到您的視圖中。很抱歉,要詳細瞭解這些細節,但這確實是文檔中的所有內容,並且我們沒有任何代碼可用於解決問題。 – skladek 2013-05-13 00:11:34

1

這就是輕掃手勢識別用於;-)(見下文)

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:viewController 
                        action:@selector(swipeLeftSelector:)]; 
    swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft; 
+0

謝謝,現在我需要弄清楚如何將手勢識別器與屏幕的特定部分相關聯! – jake9115 2013-05-10 21:05:52