2009-08-28 5 views
1

私のビューには、IBを使用して構築されたいくつかのボタンがあります。各ボタンは短い音声をトリガーします。ドラッグジェスチャーをどのように認識しますか

私はカント

(私はピアノのアプリを作っていないです心配しないでください)あなたはピアノのキーの上に指をドラッグしているだけのように...それらをトリガーするためにそれらの上に私の指をドラッグできるようにしたいですボタンの外側のタッチを認識し、その内部を認識する方法を理解します。

アイデア?

おかげ

答えて

4

あなたのボタンはUicontrolのからサブクラスとして、あなたは、ジェスチャーの認識のUicontrolのの実装を使用することができます。

UIControlの- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEventsを見てください。これにより、特定のイベントが発生するたびに呼び出されるオブジェクトのメソッドを指定できます。可能なイベントは、とりわけ、以下のとおりです。

UIControlEventTouchDragInside  = 1 << 2, 
    UIControlEventTouchDragOutside = 1 << 3, 
    UIControlEventTouchDragEnter  = 1 << 4, 

完全なリストは、Appleのdocumentation for Control Eventsで利用可能です。

UIControlEventDragOutsideが発生すると、再生中のビューを再評価することができます。

+0

ご返信ありがとうございます。 Apples Control Event Docをチェックアウトしました。 UIControlEventTouchDragEnterは、まさに私が望むように聞こえる。 "UIControlEventTouchDragEnter 指がコントロールの境界にドラッグされるイベント。 しかし、それはそのように動作しないようです。それは言うべきです コントロールの境界に指が再ドラッグされるイベントです。 外から中へドラッグすることはできませんか? とにかく私はそれに行くつもりです。 乾杯 – Jonathan

+0

「現在のビュー」に何か起こったことを示す信号としてイベントを使用できます。次に、このように動作するかどうかは完全にはわかりませんが、現在のUITouch(特にビュープロパティ)を調べて、現在の指の位置を調べることができます。 – NSSec

+0

セレクタでどのようにイベントタイプを処理できますか?各イベントタイプに異なるセレクタを使用する必要がありますか? – ymutlu