1

Xamarin の MonoTouch サンプル セットでBubbleCell サンプルをカスタマイズしようとしています。UIImageView をチャット バブルに追加し、UIImageView がタップされたときにコードが何かを実行できるようにしたい (私の場合は、モーダル ビューを開きます。ただし、今のところ、出力に何かを書き込むことにします)。窓)。

このサンプルでは、​​MonoTouch.Dialog を使用してインターフェイスをレイアウトし、ビューを構築してそれを UITableViewCell.ContentView に追加するカスタム セル クラスを備えています。

UIImageView をかなり簡単にセルに入れることができました。ただし、 UIImageView をタップに応答させる方法がわかりません。

BubbleCell (Bubble.cs) のコンストラクターで UIImageView の構築を行っています。同時に、次の行を追加します。

var tap = new UITapGestureRecognizer();
tap.AddTarget( () => {
    Console.WriteLine("I'll do something here");
});
imageView.UserInteractionEnabled = true;
imageView.AddGestureRecognizer(tap);

コードは正常にコンパイルおよび実行されますが、UIImageView をタップしても何も起こりません。

私はいくつかの変更を試みましたが、どれもこれを修正しませんでした:

  • UIImageView をカスタム UIButton に交換しました。
  • セルと UITableView の両方のスーパービュー階層を調べ、すべてのスーパービューで UserInteractionEnabled プロパティが true に設定されていることを確認しました。彼らはそうします。
  • UITapGestureRecognizer を削除し、UIImageView をサブクラス化し、TouchesBegan/TouchesEnded メソッドをインターセプトしようとしました (それらは呼び出されませんでした)。

MonoTouch.Dialog 内のテーブル セルをユーザー インタラクションで動作させるために何か特別なことをする必要がありますか?

4

1 に答える 1

1

UIImageViewオブジェクトをどのように作成しますか?サンプルプロジェクトを作成しましたが、タップに完全に反応します。

UIImageView btn = new UIImageView (new UIImage ("50-50.png"));
btn.UserInteractionEnabled = true;
UITapGestureRecognizer rec = new UITapGestureRecognizer ();
rec.AddTarget (() => Console.WriteLine ("Test"));
btn.AddGestureRecognizer (rec);
Root = new RootElement ("TestViewController") {
    new Section ("First Section"){
        new UIViewElement ("Test", btn, false)
    },
    new Section ("Second Section"){
    },
};
于 2012-06-28T13:31:07.223 に答える