2011-11-12 7 views
0

私はアプリケーションを開発していますが、このシナリオでは問題が発生しました。 2つのボタン(button1、button2)とテキストビューのスーパービューをすべてサブビューとして考えてみましょう。 1つのボタンをクリックすると、テキストビューが表示されます。私がテキストビューの外のどこかをタップすると、スーパービューで、私はテキストビューを閉じる必要があります。iPhoneでユーザージェスチャーを再作成することはできますか?

スーパービューにUITapGestureRecognizerを追加し、メソッドtap:を呼び出します。タップでは:、私はタップのポイントを取得し、それがテキストビューの外にある場合、私はテキストビューを閉じて、ジェスチャーレクチャーを削除します。今度は、ボタン2をタップすると問題が発生します。ボタン2のアクションを実行するだけでなく、テキストビューを閉じる必要がありますが、タップを入力すると、そこからボタン2のメソッドを呼び出すことはしません。

ジェスチャ認識機能が削除された後、同じ座標で同じタップをエミュレートすることが可能な場合は、私が知りたいことはありますか?もし私がこの問題を解決する方法は何ですか?

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

をしかし、それは私が知らない

答えて

2

は、iPhoneやないユーザージェスチャーを再現することも可能である私の問題解決NTんが、簡単がある:

EDIT 私が試してみましたあなたの周りにあなたが必要なものを達成するために使用することができます。使用できる方法は、あなたがUIGestureRecognizerタッチやジェスチャー認識が結合したメソッドを実行する必要があり、他の言葉でを受けるべきかどうかを返すことができます

// called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch. return NO to prevent the gesture recognizer from seeing this touch 
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 

があります。 NOを返すと、それはサブビューにタッチを渡します。

ジェスチャ認識機能のdelegateを設定することを忘れないでください。タッチボタンの枠内にある場合と.hファイルにUIGestureRecognizerDelegateプロトコル

含めてあなたがチェックすることができ、あなたは、ドキュメントUIGestureRecognizerUIGestureRecognizerDelegate

+0

素晴らしい回答!遅く返事を申し訳ありませんが、一時的にこれをテストするためのアクセス権がありません。しかし、その外観からは、ボタンのメソッドを実行しながらジェスチャ認識器に応答させたいので、私の問題を完全に解決しません。 – MadhavanRP

0

は、ここで他のreturn NOreturn YES あることができ、このための簡単な方法があります。これは私にとってはうまくいく。 "UIcontroleventTouchdown"イベントでメソッドを呼び出してください。

+0

ありがとうございますが、ボタンがそのイベントに応答するのは嫌です – MadhavanRP

関連する問題