3

こんにちは私はiOSカスタムビューで何か奇妙なことを観察しています。カスタムビューの横にボタンがあります。私はこの観察がある理由を説明するためのドキュメントまたはあなたの答えを探しています

カスタムビュー(UIViewのサブクラス)があり、単純なボタンが含まれています。addTarget:Actionを介してUITouchUpInsideを使用してボタンタッチイベントをバインドします。セレクターを、メッセージをNSLogする単純なメソッドにバインドします。

カスタムビューを表示してボタンを押すと、コンソールにメッセージが表示され、すべてが期待どおりに機能します。

ただし、UIGestureReognizerをカスタムビューに追加して実行すると、ボタンをクリックしてもメッセージが出力されなくなります。なぜですか?私はより詳細な調査を行い、カスタムビューでヒットテストメソッドを確認しました(ビューにはボタンが含まれています)(オーバーライドしますが、何もしませんでした。もう一度スーパーを呼び出します)、ヒットテストは正しいビュー、つまりボタンをクリックすると、カスタムビューのヒットテストメソッドがUIButtonを返します

私はここでイベントチェーンを理解していません、誰かがこれを説明するドキュメントを指し示すことができますか?

ボタンのコンテナビューにレゴナイザーを追加すると、何らかの理由でボタンがイベントの処理方法を認識しないため、スーパービュー(この場合はカスタムビュー)に処理を要求するように見えますが、なぜですか? ?? UITouchUPInsideを介してイベントハンデラーをボタンにバインドしました

私がこれを理解したいのを手伝ってください

4

1 に答える 1

0

レコグナイザのcancelTouchesInViewプロパティを に設定しますNO

于 2012-09-06T08:08:29.390 に答える