2009-09-03 13 views
1

私は4-5個のボタン(ボタンの代わりにuiviewを使うことができます)を隣り合わせに並べています。タッチiphoneを強制的にキャンセルする

ユーザーが1つのボタンから他のボタン(セルフビューの外側)にタッチすると、このタッチをキャンセルして次のボタン(表示)のタッチを開始します。

この機能を実現する方法は?

私は、ボタンの代わりにuiviewを使用して、隣り合わせに保ち、タッチイベントを処理しました。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 

UITouch *touch = [touches anyObject]; //anyobject 
CGPoint touchLocation = [touch locationInView:touch.view]; 
if(![self pointInside:touchLocation withEvent:nil]) 
{ 
//touch is outside of my current view , do something to cancel current touch and i can get touchesmoved for the next view . help me to write something. 
} 

}

私たちは、このようなUIを持っているときに、イベントを処理するための他の方法はあります。

ありがとうございました。

+0

上記に加え、 。ユーザーが1つのキーから別のキーに指をスライドさせると、どのようにタッチイベントが発生しますか?どのようにこの動作を達成する。リンクやコードベースを教えてください。 – Niraj

答えて

1

UIButtonを使用している場合は、ボタンのイベントを使用してこれを行うことができます。 touchDownまたはtouchDragInsideを取得したら、メモを再生します。 touchUpInsideまたはtouchDragOutsideを取得したときに停止します。私たちは、ピアノのアプリと考えることができますが、UIWindowsサブクラスから、またはのUIViewControllerコンテナからタッチを自分で処理する必要が

+0

ありがとうございました。私はUIButtonのイベントを試してみました。タッチダウンは完全にうまく動作します。ドラッグイベント(dragoutsideとdraginside)はボタンの外側にあります。 – Niraj

+0

これを解決するのに役立つ作業コードがありますか? – Niraj

+0

UIButtonsのドラッグイベントの仕組みは、ドラッグの開始位置と終了位置を確認することです。ボタンの外側からボタンの領域内に入った場合は、メソッド(IBAction)が呼び出されます。ボタンの内側で開始され、外側で終了した場合は、touchDragOutsideメソッドを呼び出します。 – mahboudz

0

(この場合はuserInteractionEnabledプロパティを無効にすることを忘れないでください)

関連する問題