1

サブビューの 1 つからのタッチ イベントを処理する UIViewController サブクラスを取得するのに問題があります。これは階層です:

  UIViewController
        |
  MYGeneric_UIVC
        |
MyAppSpecific_UIVC----- UIView[view_all] 
                           |
                           +-- UIView[view_top] (top section of screen)
                           +-- UIControl subclass[view_middle] (middle section)
                           +-- UIView[view_bottom] (bottom section)

タッチ イベントは view_middle (UIControl サブクラス) で動作していますが、view_top と view_bottom の UILabel テキストを変更して view_middle で起こっていることに反応するには、(メッセージを送信するのではなく) MyAppSpecific_UIVC でイベントを処理する必要があることに気付きました。他の人が提案しているポインターとデリゲートの使用については、少し面倒です)。


そこで、view_middle から 4 つのタッチ イベント処理メソッドを削除し、MyAppSpecific_UIVC に追加しました。私が考えていることは、view_middle がイベントを処理しない場合、階層を上って再試行する必要があるということです (view_all、次に MyAppSpecific_UIVC)。


しかし、MyAppSpecific_UIVC はタッチ イベントを取得しません。また、view_all も試しましたが、どちらも機能しませんでした。


おそらく、nib ファイルのリンクが間違っているのではないでしょうか? ファイルの所有者は MyAppSpecific_UIVC です。ファイルの所有者の「ビュー」は「view_all」を指しています。


view_middle (UIControl) の「Sent Events」は IB の何かを指している必要がありますか?


view_all でユーザー インタラクションを有効にする必要がありますか?


次を使用してnibファイルをロードしています:

nibObjects = [[NSBundle mainBundle] loadNibNamed:resource owner:self options:nil];

提案はありますか?

4

1 に答える 1

0

Uiview クラスを UIControll として変更すると、タッチ イベントが受け入れられます。

于 2012-04-16T16:43:35.317 に答える