2011-01-17 9 views
1

私のようにInterface Builderで自分のUIWindowを構造化している:私のウィンドウのサブビューは表示されますが、タッチを処理しないのはなぜですか?

  • ウィンドウ
    • drawingView(カスタムUIViewの)drawingViewを使用してタッチを扱う
    • ツールバー(UIToolbar)

touchesBeganなど。しかし、私が試してみると、 'someView'(カスタムUIView)にUIButtonsを持っていて、それをウィンドウのサブビューとして追加すると、ボタンdいずれの接触も受け付けません。

私はとの「someView」を作成:

[[[UIApplication sharedApplication] keyWindow] addSubview:someView]; 

は「someView」drawingViewの上に細かい表示しますが、タッチが全く登録していないようだ、とdrawingViewに通過させます。何故ですか?

もう一つの奇妙なことは、私がプログラム的にまたはIBに何かを設定したとしても、someViewのbackgroundColorは常に明白であるということです。また

、私は

[[UIPopoverController alloc] initWithContentViewController:someView]; 

を使用してsomeViewを作成するとき、それはタッチとすべてを扱う、正常に動作します。私がサブビューとして追加したいのは、私がいくつかのViewを追加するもっと一般的な方法を望んでいるからです。これはiPhoneでも同様です。

答えて

0

私は解決策を見つけました(ハックな種類の方法で)。

drawViewのサブビューとして 'someView'を追加する必要がありました。これは、drawViewの上に表示され、プログラムで、タッチを受け取るUIButtonsでsomeViewを設定することができます。

drawViewはOpenGLビューであるため、レイヤークラスをオーバーライドしています。レイヤークラスは、ビューがどのようにタッチを取得するように配置されているかによって決まります。おもう。

0

タッチの受信が必要なビューのすべての親にuserInteractionEnabledフラグが設定されていることを確認してください。

+0

userInteractionEnabledフラグは、すべてのものに対して設定されています。これは、drawingViewがタッチをうまく受け入れるように見えるためです。また、私はpopupViewControllerとしていくつかのビューを作成すると、それもうまく動作します。 – zlog

+0

UIControlまたはUIView要素で接触を受けようとしていますか?私が知る限り、UIViewは動作しません。 –

+0

UIViewにあるUIButtonを使用したUIControl – zlog

関連する問題