私の問題は、タップ検出についてです。多くのコントロールでuiviewのタップを検出するにはどうすればいいですか?
私はのUIViewControllerを持っていると私は、ユーザーのタップ場合、私は、小さなのUIView(200×150)を表示uibuttonをタップするとUIViewの上のいくつかのコントロール(ラベル、ボタン、テーブルビュー、ImageViewの、等。)
があります小さなビューのuibuttons私は小さなビューを非表示にします。
しかし、ユーザーが背景をタップすると、私はuiviewを隠すことができません。私はこのコードを試してみました
..私はuiviewcontrolsビュー内の別のボタンをタップすると
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//NSLog(@"Touches began.");
[self hideShareView];
}
は、それが動作しません。
私はuiviewcontrolのuiviewを最初に反応させたいだけです。
私はfirstResponderについて考えていますが、最初に設定する方法はわかりません。
編集:ipadのuiPopoverのように動作します。
smallviewが開かれたときに、任意のアクションを実行するために、あなたのメインビューを望んでいない場合にのみ、あなたがこれを行うことができ
MAKE SURE
&you don't want your main view to perform any action when smallview is opened
が、その後[<YOUR_MAIN_VIEW> setUserInteractionEnabled:NO];
を試してみてください動作しますが、しない場合すべての解決策、しかし、彼らは私のために働かなかった。私のuiviewcontrolsはラベル、ボタン、uitableview、イメージビュー、uiscrolviewを持っています。私のsmallview(shareView)が見えて、私のviewcontrollersの任意のuilabelをタップすると、私はタップイベントをキャッチすることができます。しかし、私がuitable、button、srollview、または私のサブクラスの他のインスタンスをタッチすると、このイベントでキャッチタップイベントを実行できなくなります: - (void)touchesBegan:(NSSet *)はwithEvent:(UIEvent *)イベントに触れます。それはUIPopOverのように機能しなければならない。 – kodcu